Как установить "выбранную опцию" раскрывающегося списка select с помощью jquery
у меня есть следующая функция jquery:
$.post('GetSalesRepfromCustomer', {
data: selectedObj.value
}, function (result) {
alert(result[0]);
$('select[name^="salesrep"]').val(result[0]);
});
result[0]
- это значение, которое я хочу установить как selected
пункт в моем меню.
result[0]
равна Bruce jones
.
поле выбора заполняется запросом базы данных, но один из отображаемых html:
<select id="salesrep" data-theme="a" data-mini="true" name="salesrep">
<option value=""> </option>
<option value="john smith">john smith</option>
<option value="Bruce Jones">Bruce Jones</option>
<option value="Adam Calitz">Adam Calitz</option>
<option>108</option>
</select>
$('select[name^="salesrep"]').val(result[0]);
не заполняет выбранную опцию select box. Я также пробовал $("#salesrep").val(result[0]);
без каких-либо удачи.
любая помощь ценится.
так что я хочу, это выбранный / выделенный параметр в раскрывающемся списке salesrep будет Брюс Джонс.
HTML быть:
<select id="salesrep" data-theme="a" data-mini="true" name="salesrep">
<option value=""> </option>
<option value="john smith">john smith</option>
<option value="Bruce Jones" selected >Bruce Jones</option>
<option value="Adam Calitz">Adam Calitz</option>
<option>108</option>
</select>
еще раз спасибо,
Весь Скрипт
<script type="text/javascript">
$(document).ready(function () {
$("#customer").autocomplete(
{
source: "get_customers",
messages:
{
noResults: '',
results: function() {}
},
select: function( event, ui )
{
var selectedObj = ui.item;
$.post('GetSalesRepfromCustomer', {data:selectedObj.value},function(result) {
alert(result[0]);
var selnametest="Bruce Koller";
$("#salesrep").val(selnametest);
});
}
});
});
</script>
визуализированный HTML:
<select id="salesrep" data-theme="a" data-mini="true" name="salesrep">
<option value=""> </option>
<option value="RyanLubuschagne">Ryan Lubuschagne</option>
<option value="Bruce Jones">Bruce Jones</option>
<option value="Adam Calitz">Adam Calitz</option>
</select>
6 ответов
попробуйте это :
$('select[name^="salesrep"] option[value="Bruce Jones"]').attr("selected","selected");
просто заменить option[value="Bruce Jones"]
by option[value=result[0]]
и прежде чем выбрать новый вариант, вы можете "отменить выбор" предыдущего:
$('select[name^="salesrep"] option:selected').attr("selected",null);
вы можете прочитать это тоже:jQuery получить конкретный текст тега опции
Edit: используя jQuery Mobile, Эта ссылка может обеспечить хорошее решение:jQuery mobile-установить значения выбора / опции
установите значение, которое он установит в качестве выбранного параметра для выпадающего списка:
$("#salesrep").val("Bruce Jones");
если он все еще не работает:
- пожалуйста, проверьте ошибки JavaScript в консоли.
- убедитесь, что вы включили файлы jquery
- ваша сеть не блокирует файл jquery при внешнем использовании.
- проверьте источник представления некоторое время точную копию элемента stop jquery для работы правильно
одна вещь, которую я не думаю, что кто-то упомянул, и глупая ошибка, которую я сделал в прошлом (особенно при динамическом заполнении выбора). jQuery .val () не будет работать для ввода select, если нет опции со значением, которое соответствует предоставленному значению.
вот скрипка, объясняющая -> http://jsfiddle.net/go164zmt/
<select id="example">
<option value="0">Test0</option>
<option value="1">Test1</option>
</select>
$("#example").val("0");
alert($("#example").val());
$("#example").val("1");
alert($("#example").val());
//doesn't exist
$("#example").val("2");
//and thus returns null
alert($("#example").val());
вы должны заменить YourID и value= "3"для ваших текущих.
$(document).ready(function() {
$('#YourID option[value="3"]').attr("selected", "selected");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<select id="YourID">
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="4">D</option>
</select>
и value= "3"для ваших текущих.
$('#YourID option[value="3"]').attr("selected", "selected");
<select id="YourID" >
<option value="1">A </option>
<option value="2">B</option>
<option value="3">C</option>
<option value="4">D</option>
</select>
$(document).ready(function() {
$('#YourID option[value="3"]').attr("selected", "selected");
$('#YourID option:selected').attr("selected",null);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<select id="YourID">
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="4">D</option>
</select>
матч между .val('Bruce jones')
и value="Bruce Jones"
регистр. Похоже, что вы капитализируете Джонса в одном, но не в другом. Либо отследить, где разница происходит от, использовать id вместо имени, или вызов .toLowerCase()
на обоих.