Ящик выбора обновления 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();
Надеюсь, это поможет.