У меня есть выпадающий список множественного выбора. Мне нужно совершать ajax-вызов каждый раз, когда выбирается элемент, но у меня проблема с получением определенного значения из меню выбора. Вместо получения текущего выбранного значения я получаю массив всех выбранных значений. Как я могу получить текущее выбранное значение с JQuery?
ОК, только что разобрался:
$(this).val();
Ранее я использовал $('#id').val(), и это возвращало массив. $(this).val() даст вам текущее выбранное значение.
$('#id').val()
$(this).val()
Вот скрипка, чтобы получить текущее выбранное значение из выпадающего списка множественного выбора
var selectedOption; $(document).ready(function() { $('#price-type').on('change', function(evt, params) { var currentSelection; if (selectedOption) { var currentValues = $(this).val(); currentSelection = currentValues.filter(function(el) { return selectedOption.indexOf(el) < 0; }); } selectedOption = $(this).val(); $('#result').text(currentSelection); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select id="price-type" multiple="multiple"> <option value="PRICE-1">PRICE-1</option> <option value="PRICE-2">PRICE-2</option> <option value="PRICE-3">PRICE-3</option> <option value="PRICE-4">PRICE-4</option> <option value="PRICE-5">PRICE-5</option> </select> <div id="result"> </div>
Вы можете получить выбранное значение в предупреждении:
$("#mydropdown").on('change', function(evt, params) { alert(params.selected); });
Это поможет вам получить точное значение, которое вы хотите.
Попробуйте использовать событие щелчка в соответствии с этим ответом , чтобы захватить его при выборе каждого элемента.