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

Как выбрать параметры в нескольких списках выбора с помощью jQuery?

У меня есть два выпадающих списка. Когда пользователь выбирает значение из первого, которое я хочу во втором (у которого есть опция множественного выбора), с помощью jQuery для автоматического выбора некоторых значений. Как я могу это сделать?

First select box:
<select id="update_carte_s" name="update_carte_s">
     <option value="5!**8,9**!6!44.9">Ghid complet Internet</option>
     <option value="6!**6,7**!6!24.95">PC pas cu pas</option>
     <option value="7!**10**!3!27.95">Jocul ingerului</option>
     <option value="8!**11,12**!8!39">Ghidul vinurilor</option>
</select>
Second select box:
<select id="uc_autori_s" name="uc_autorilist[]" size="5" multiple>
     <option value="3">Rose Tremain</option>
     <option value="4">Jonathan Coe</option>           
     <option value="5">Cecilia Ahern</option>
     <option value="6">Marinel Serban</option>
     <option value="7">Emanuela Cherchez</option>
     <option value="8">Peter Buckley</option>
     <option value="9">Clark Duncan</option>
     <option value="10">Carlos-Ruiz Zafon</option>
     <option value="11">Catalin Paduraru</option>
     <option value="12">Dan-Silviu Boerescu</option>
</select>

Полужирные значения из первого блока выбора, разделенного на, являются значениями, которые я хочу выбрать из второго блока выбора. Например, 11,12 будет означать во вторых вариантах коробки со значениями 11 и 12. Для этого нужно выбрать.

В настоящее время у меня есть что-то вроде этого:

$.bookAuthors = $.bookDetailsArray[1].split(',');
$.each($.bookAuthors, function( intIndex, objValue ){
      $("#uc_autori_s").val(objValue).attr("selected","selected");
});

но проблема в том, что в моем случае 12 выбрано только последнее значение (отключение 11)

4b9b3361

Ответ 1

Вы не сможете использовать метод val для установки нескольких option. Вместо этого вы должны выбрать сам вариант и установить его выбранный атрибут:

$('#uc_autori_s option[value=' + objValue + ']').attr('selected', true);

Ответ 2

Вы можете передать выбор с несколькими значениями массивом

$("#uc_autori_s").val( $.bookAuthors );

Ответ 3

Например, у вас есть поле выбора, подобное этому:

<select id="books">
  <option value="1">Harry Porter</option>
  <option value="2">Eragon</option>
  <option value="3">Gadfly</option>
  <option value="4">C++ For Dummies</option>
  <option value="5">Android Cookbook</option>
</select>

Способ выбора нескольких параметров (например, Eragon, Gadfly) - создать объект, который содержит значения параметров, которые вы хотите выбрать, а затем использовать это:

var options = ["2", "3"];
$("#books").val(options);

Ответ 4

<select id="multiple" multiple="multiple">
  <option selected="selected">Multiple</option>
  <option>Multiple2</option>
  <option selected="selected">Multiple3</option>
</select>

<script>
$("#multiple").val(["Multiple2", "Multiple3"]);
</script>

Ответ 5

Вот простой способ найти и выбрать раскрывающееся меню multi select

 $('#selectID ').children("option[value=" + myValue + "]").prop("selected", true);

Ответ 6

Вам нужно удалить текущие параметры, чтобы управлять выбранными параметрами.

Вот пример добавления параметров:

<select id="mySelectId">
  <option value=""></option>
  <option value="Argentina">Argentina</option>
  <option value="Germany">Germany</option>
  <option value="Greece">Greece</option>
  <option value="Japan">Japan</option>
  <option value="Thailand">Thailand</option>
</select>

<script>
  mySelect = $('#mySelectId');
  var selected = mySelect.val();                         //get current values
  selected = selected.concat(['Germany','Argentina']);   //merge with new values
  selected = Array.from(new Set(selected));              //make values unique
  mySelect.val(null);                                    //delete current options
  mySelect.val(selected);                                //add new options
</script>

Для selected.js add:

<script>
  mySelect.trigger('chosen:updated');
</script>

Ответ 7

Вам нужно сделать следующее, чтобы выбрать значения в multiselect. Поскольку multiselect возвращает массив значений при его выборе, то это же нужно дать ему, когда его значения будут установлены по умолчанию.

<select id="sonyConsoles" multiple>
<option value="1">PS4 Pro</option>
<option value="2">PS4</option>
<option value="3">PS3</option>
<option value="4">PS Vita</option>
<option value="5">PSP</option>
</select>

Если вы хотите, чтобы опции 1,2 и 4 были выбраны по умолчанию, тогда сделайте;   $ ( '#') SonyConsoles вал ([1,2,4]);.

Это вернет selectBox, в котором выбраны опции 1,2 и 5.