У меня есть поле множественного выбора с группой параметров, например:
<select id="sel_salaryrange" name="salaryranges[]" size="8" multiple="1">
<optgroup label="PKR" class="PKR">
<option value="1">15000 - 20000</option>
<option value="2">18000 - 35000</option>
<option value="3" selected="selected">50000 - 100000</option>
</optgroup>
<optgroup label="SAR" class="SAR">
<option value="4">1000 - 2000</option>
<option value="6" selected="selected">3000 - 5000</option>
</optgroup>
<optgroup label="USD" class="USD">
<option value="5">1000 - 3000</option>
</optgroup>
</select>
Т. е. есть 3 названия группы опций: «PKR», «SAR» и «USD», где 2 элемента выбраны в группе опций «PKR» и «SAR». Теперь я хочу запретить множественный выбор в одной и той же группе опций, как это будет решаться с помощью jQuery или JavaScript, JQuery будет предпочтительнее.
Я был бы очень благодарен вам в этом отношении.
Благодарность
2 ответа
Это немного сложно — я не думаю, что есть какие-либо подходящие события, которые вы можете прослушивать в тегах <option>
, чтобы проверять, когда они выбраны. Вам придется прослушивать событие change
в теге <select>
и отслеживать, что выбрано, а что нет.
Не могли бы вы разделить его на несколько <select>
, у которых нет атрибута multiple
?
Попробуй это:
$('select#sel_salaryrange option').mousedown(function() {
$(this).parent().find('option:selected').removeAttr('selected');
});
Когда пользователь щелкает опцию, этот код очищает все выборы в текущей группе опций и позволяет выбрать выбранную опцию.
У этого кода есть один очевидный недостаток: пользователь по-прежнему может выбирать несколько значений с помощью клавиатуры.
Я бы предпочел сделать это с отдельными радиовходами или, по крайней мере, с отдельными выборками, которые не являются multiple
.
Похожие вопросы
Новые вопросы
jquery
jQuery — это библиотека JavaScript. Также рассмотрите возможность добавления тега JavaScript. jQuery — это популярная кросс-браузерная библиотека JavaScript, которая упрощает обход объектной модели документа (DOM), обработку событий, анимацию и взаимодействие AJAX, сводя к минимуму расхождения между браузерами. Вопрос с тегом jQuery должен быть связан с jQuery, поэтому jQuery должен использоваться рассматриваемым кодом, и в вопросе должны быть как минимум элементы, связанные с использованием jQuery.