Подтвердить что ты не робот

Как установить "выбранный вариант" в раскрывающемся списке выбора с помощью 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>
4b9b3361

Ответ 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() на обоих.