Ящик выбора обновления JQuery

Я заполняю поле выбора, используя JQuery на загрузке страницы, используя этот метод

 $('#select').append('<option value="' + result + '">' + result + '</option>'); 

Однако это оставляет поле выбора "пустым", то есть первое значение в списке опций не выбирается в качестве выбранного параметра.

Как мне "обновить" этот список, чтобы было предварительно выбрано первое значение?

Извините - должен был сказать, что это был JQuery mobile до

Спасибо.

Ответ 1

Вы можете добавить атрибут "selected" к элементу опции, который вы хотите выбрать:

$('#select')
    .append('<option value="' + result + '" selected="selected">' + result + '</option>'); 

Вы не укажете, как вы заполняете именно выбранный вами элемент, используя цикл, вы можете сделать это следующим образом:

var data = ['a', 'b', 'c'];
var $select = $('#select'); // you might wanna empty it first with .empty()

for (var i = 0; i < data.length; i++) {
    var o = $('<option/>', { value: data[i] })
        .text(data[i])
        .prop('selected', i == 0);
    o.appendTo($select);
}​

DEMO


Итак, похоже, вы используете jQuery Mobile, как вы сказали в комментарии.

Если вы используете виджет selectmenu, вам необходимо программно обновить после внесения программных изменений в его содержимое/структуру:

$select.selectmenu("refresh", true);

Документация

Ответ 2

Вы можете использовать

$('#select').removeAttr('selected').find('option:first').attr('selected', 'selected');

Ответ 3

Просто.. вы устанавливаете значение, что хотите, т.е. $('#select').val(5);.. поэтому в вашем случае его $('#select').val(result);

Изменить: полный рабочий пример включен:

<script type='text/javascript' src='http://code.jquery.com/jquery-1.6.4.js'></script>
<select id='select'></select>
<br>
<input type=button onclick='addNew()' value='Add'>

<script>
function addNew()
{
        var result = Math.floor(Math.random()*1000);
        $('#select').append('<option value="' + result + '">' + result + '</option>'); 
        $('#select').val(result);           
} 
</script>

Ответ 4

Не все обновления браузеров выбираются автоматически после добавления новой опции.

Один трюк, который работает для меня, скрывает и показывает окно выбора сразу после добавления к нему новых параметров. Итак, в вашем случае:

 $('#select').append('<option value="' + result + '">' + result + '</option>').hide().show();

Что касается выбора правильной новой добавленной опции, выполните следующие действия:

 $('select').val(result);

Ответ 5

Ответ мохоры Богдан работает только один раз, затем, если вы выберете другой вариант, он больше не будет работать.

Чтобы сделать его многоразовым, используйте:

$('#select').prop('selected', false).find('option:first').prop('selected', true);

Ответ 6

Привет после нескольких исследований, я решил с помощью этого кода:

$('#select_id').empty();    
$('#select_id').append($('<option>',{text: 'pippo', value: 'pippo', selected: true}))
$('#select_id').change();

Надеюсь, это поможет.