2013-03-30 2 views
3

Каков правильный способ добавить опцию allowClear к виджету select2 на мой взгляд?rails jquery select2

$ -> 
    $("#practice_toolkeeper").select2().select2('val',$("#toolkeeper_value").val()) 

У меня есть следующий код на мой взгляд:

<%= f.select :toolkeeper, options_from_collection_for_select(@people, :id, :name), :prompt => "Select type question" %> 

, который генерирует этот HTML:

<select id="practice_toolkeeper" name="practice[toolkeeper]"> 
    <option value="">Select type question</option> 
    <option value="21">sdifj</option> 
    <option value="20">maxam</option> 
    <option value="22">maxab</option> 
    <option value="19">maxa</option> 
    <option value="23">dafuq</option> 
    <option value="15">bla</option> 
    <option value="24">asdasdasd</option> 
    <option value="13">abl</option> 
    <option value="17">Testa</option> 
</select> 

Я пробовал много вариантов, но ни один не работает до сих пор ...

ответ

5

Вам необходимо сделать несколько действий, чтобы заставить это работать:

  1. Установите allowClear и placeholder опции в опции -s объект, который используется при инициализации виджета:

    $ -> 
        $("#practice_toolkeeper") 
         .select2({ 
          allowClear: true, 
          placeholder: 'Select type question' 
         }) 
         .select2('val',$("#toolkeeper_value").val()) 
    
  2. Похоже allowClear вариант работает только тогда, когда есть в select пустой option. Для создания пустой опции можно использовать {:include_blank => true} при генерации избранных:

    <%= f.select :toolkeeper, options_from_collection_for_select(@people, :id, :name), {:include_blank => true} %> 
    

    В основном вы хотите, чтобы ваш HTML, чтобы выглядеть следующим образом:

    <select id="practice_toolkeeper" name="practice[toolkeeper]"> 
        <option value=""></option> 
        <option value="21">sdifj</option> 
        <!-- etc --> 
    </select> 
    

Пример:http://jsfiddle.net/Z63d7/

+0

Нету то не работает – HappyHacking

+0

Не работает как? Вы видите ошибку на странице? –

+0

нет x для очистки просто не apperaing .. но ne ошибка – HappyHacking

0

Для моего разработчика Fellas Landed here

Предположит, вы используете Formtastic Обычно с активным администратором можно передать при декларировании

f.input :your_select_2_field, { as: :select2, collection: ['a', 'b'], include_blank: 'Select Nothing'} 

Сконцентрируйтесь на фигурных скобках {}

-Happy Coding :)