Когда вы пытаетесь получить доступ к значению в $("#SecondDropDown option[value='A1']")
, не должно быть одинарных кавычек, окружающих значение, и вместо этого оно предназначено для атрибута HTML value
, поэтому оно будет более подходящим, например так:
$('#FirstDropDown').change(function () {
var data = $(this).val();
if (data == "A") {
$("#SecondDropDown option[value=B1]").attr('disabled', 'disabled');
$("#SecondDropDown option[value=B2]").attr('disabled', 'disabled');
$("#SecondDropDown option[value=A1]").prop('disabled', false);
$("#SecondDropDown option[value=A2]").prop('disabled', false);
$("#SecondDropDown option[value=A3]").prop('disabled', false);
}
if (data == "B") {
$("#SecondDropDown option[value=A1]").attr('disabled', 'disabled');
$("#SecondDropDown option[value=A2]").attr('disabled', 'disabled');
$("#SecondDropDown option[value=A3]").attr('disabled', 'disabled');
$("#SecondDropDown option[value=B1]").prop('disabled', false);
$("#SecondDropDown option[value=B2]").prop('disabled', false);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="FirstDropDown">
<option selected="selected">A</option>
<option>B</option>
</select>
<select id="SecondDropDown">
<option value="A1">A1</option>
<option value="A2">A2</option>
<option value="A3">A3</option>
<option value="B1" disabled="disabled">B1</option>
<option value="B2" disabled="disabled">B2</option>
</select>
Обратите внимание, что необходимо отключить / повторно включить противоположную букву, когда пользователь переключается, поскольку это может произойти. Для этого я использовал метод prop()
. Также обратите внимание, что вам нужно отключить B1 и B2 в начале, так как A - это первое значение в раскрывающемся списке, поэтому это значение по умолчанию выбрано для начала.