Jquery проблема с автоматическим выбором опции выбора, когда опция недоступна - PullRequest
1 голос
/ 17 июня 2020

Новое в Jquery здесь, поскольку вопрос может предложить ..

У меня есть 2 выбора, и их числовые c параметры генерируются php, где два диапазона часто различаются, например первый - 0-7, а второй - 0-4.

Когда пользователь выбирает число при первом выборе, мне нужно, чтобы это значение было автоматически выбрано при втором выборе, и я делаю это с кодом ниже.

Проблема в том, что, когда параметр недоступен во втором выборе, например, 5, 6 или 7, ничего не будет выбрано, что не будет проблемой, однако, похоже, что это сломается что-то, потому что в этом случае форма не может быть отправлена, просто ничего не происходит.

Поэтому я пытаюсь придумать решение, в котором Jquery определяет, что опция недоступна, и выбирает 0 вместо ничего.

Спасибо за любые предложения.

    $(document).ready(function () {
    $("#select1").change(function () {
    var list1 = $(this).val();
    $('#select2').val(list1).change();
     });    

1 Ответ

0 голосов
/ 17 июня 2020

Вы можете проверить, содержит ли второй выбор вариант со значением выбранного варианта первого выбора, используя length:

$(document).ready(function() {
  $("#select1").change(function() {
    var list1 = $(this).val();
    if ($("#select2 option[value='" + list1 + "']").length > 0) {
      $("#select2").val(list1).change();
    } else {
      $("#select2").val("0").change();
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="select1">
  <option value="0">0</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>
<select id="select2">
  <option value="0">0</option>
  <option value="1">1</option>
  <option value="2">2</option>
</select>
...