Как включить/отключить параметры в поле выбора с помощью jquery
У меня есть поле выбора, которое содержит параметры и optgroup
, которые генерируются динамически с использованием php.Now, когда я выбираю "ВСЕ" все остальные optgroup
, параметры должны быть отключены и когда я выбираю любой параметр, отличный от "ВСЕ" опция "ALL" должна быть отключена
<select name="select1" id ="select1" onchange="handleSelect()">
<option value ="-1">ALL</option>
<optgroup label="CARS">
<option value="ford">FORD</option>
<option value="Nissan">Nissan</option>
</optgroup>
</select>
<script>
function handleSelect() {
var selectVal = $("#select1:selected").text();
if (selectVal == "ALL") {
// cannot disable all the options in select box
$("#select1 option").attr("disabled", "disabled");
}
else {
$("#select1 option[value='-1']").attr('disabled', 'disabled');
$("#select1 option").attr('disabled', '');
}
}
</script>
Как я могу заставить это работать?
Ответы
Ответ 1
Это странная вещь, которую нужно делать, но здесь код, который соответствует вашим требованиям.
$('select').on('change', function() {
if (this.value == '-1') {
$('optgroup option').prop('disabled', true);
} else {
$('optgroup option').prop('disabled', false);
}
});
Живой пример - http://jsfiddle.net/NpNFh/
Ответ 2
Вы можете использовать следующий код. Давайте рассмотрим, что у вас есть три блока выбора следующим образом
<select class="sel_box" id="sel_1" onchange="disable_sel(this.value);" ></select>
<select class="sel_box" id="sel_2" onchange="disable_sel(this.value);" ></select>
<select class="sel_box" id="sel_3" onchange="disable_sel(this.value);" ></select>
а в функции let 'opt' теперь используется аргумент, следующий за
$('.sel_box option[value="'+opt+'"]').attr("disabled", true);
Ответ 3
Вы можете использовать два варианта синтаксиса для отключенного атрибута, в зависимости от версии HTML, на которую вы нацеливаете:
HTML4: <option value="spider" disabled>Spider</option>
XHTML: <option value="spider" disabled="disabled">Spider</option>