Мне нужна помощь по зависимостям опций dropdownlist друг от друга. Скажем, у меня есть два downdownlists ниже.
<select name="List1" id="List1">
<option value="">Select Item</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
</select>
<select id="List2" name="List2">
<option value="">Select Item</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
Сценарии ниже:
Пожалуйста, помогите с примерами кодов, если это возможно.
Благодаря,
Похоже, что логика очень специфична, поэтому, не зная больше деталей, мы не можем реально обобщить. Тем не менее, этот jsFiddle должен начать вас по крайней мере. Вот соответствующий JavaScript:
// Listen for change event on List1
$("#List1").change(function (e) {
// Find the selected value from List1
var selectedValue = $(this).val();
var $list2 = $("#List2");
if (selectedValue == 'a' || selectedValue == 'd') {
// Reset disabled options for List2
$list2.find("option").removeAttr('disabled');
// If you want to change the value of List2 back to some default...
//list2.val('');
}
if (selectedValue == 'b' || selectedValue == 'c') {
// Select option 2 for List2
$list2.val('2');
// Disable all other options
$list2.find("option:not(:selected)").attr('disabled', 'disabled');
}
});
Чтобы обобщить, вы должны добавить классы в опции List1 (например, class="reset-other-list"
или class="restrict-other-list"
). Затем вместо проверки на определенные значения проверьте, была ли выбрана опция с этим class
. Это приведет к меньшим головным болям, если в будущем значения изменятся.