Как установить "выбранный вариант" в раскрывающемся списке выбора с помощью 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]);
не заполняет выбранную опцию выбора. Я также пробовал $("#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
<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>
Ответы
Ответ 1
Попробуйте следующее:
$('select[name^="salesrep"] option[value="Bruce Jones"]').attr("selected","selected");
Просто замените option[value="Bruce Jones"]
на option[value=result[0]]
И перед тем, как выбрать новую опцию, вам может потребоваться "отменить выбор" предыдущего:
$('select[name^="salesrep"] option:selected').attr("selected",null);
Возможно, вы захотите также прочитать это: jQuery получить конкретный текст тега опции
Изменить: Использование jQuery Mobile, эта ссылка может предоставить хорошее решение: jquery mobile - установить значения выбора/параметра
Ответ 2
Задайте значение, которое оно установит в качестве выбранного параметра для выпадающего меню:
$("#salesrep").val("Bruce Jones");
Здесь работает демо
Если он все еще не работает:
- Проверьте ошибки JavaScript на консоли.
- Убедитесь, что вы включили файлы jquery
- ваша сеть не блокирует файл jquery, если используется снаружи.
- Проверьте источник просмотра некоторое время, чтобы точную копию элемента stop jquery работать корректно.
Ответ 3
Одно я не думаю, что кто-то упомянул, и тупой ошибкой, которую я сделал в прошлом (особенно когда динамически заполняется выбор). 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());
Ответ 4
Вы должны заменить 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>
Ответ 5
$(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>
Ответ 6
Совпадение между .val('Bruce jones')
и value="Bruce Jones"
зависит от регистра. Похоже, вы используете Jones в одном, а не другом. Отслеживайте, где разница, используйте идентификатор вместо имени или вызовите .toLowerCase()
на обоих.