Jquery如何检查具有相同ID的select上的每个值?

时间:2017-11-16 05:12:09

标签: javascript jquery html

我有多个选择选项。我想检查是否有任何选择具有特定的选定值然后禁用按钮。有可能吗?

这里的例子是:

<select class='test'>
<option value='open'>AA</option>
<option value='hide'>BB</option>
</select>

<select class='test'>
<option value='open'>AA</option>
<option value='hide'>BB</option>
</select>

<button id='bb'></button>

因此,如果选择了class 'test' 'hide'的{​​{1}}选项,则会禁用id 'bb'按钮。 即使我选择具有开放值的其他select option,如果仍有一个select具有隐藏值,则该按钮仍应禁用。 我想用jQuery做到这一点。

3 个答案:

答案 0 :(得分:1)

据我了解,如果选择任何下拉列表为hide,则该按钮应被禁用。因此,如果您选择BB选项,则按钮会被禁用,如果您选择AA选项,则按钮会启用。

以下是更新后的代码:

&#13;
&#13;
function checkAndDisableButton() {
  $("#bb").prop('disabled', false);
  $(".test").each(function() {
    if ($(this).val() == 'hide') {
      $("#bb").prop('disabled', true);
    }
  });
}


$("select").on('change', checkAndDisableButton);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class='test'>
<option value='open'>AA</option>
<option value='hide'>BB</option>
</select>

<select class='test'>
<option value='open'>AA</option>
<option value='hide'>BB</option>
</select>

<button id='bb'>Button</button>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你可以这样做,它会检查是否有任何select具有值为hide的选定选项。如果是这样,它将禁用该按钮。

$(".test").change(function() {
  var flag = true;
  $('.test').each(function() {
    if ($(this).val() == "hide") {
      flag = false;
    }
  });
  if (flag) {
    $("#bb").prop("disabled", false)
  } else {
    $("#bb").prop("disabled", true)
  }
})

工作演示

&#13;
&#13;
$(".test").change(function() {
  var flag = true;
  $('.test').each(function() {
    if ($(this).val() == "hide") {
      flag = false;
    }
  });
  if (flag) {
    $("#bb").prop("disabled", false)
  } else {
    $("#bb").prop("disabled", true)
  }
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class='test'>
<option value='open'>AA</option>
<option value='hide'>BB</option>
</select>

<select class='test'>
<option value='open'>AA</option>
<option value='hide'>BB</option>
</select>

<button id='bb'>test me</button>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

尝试这个简单的如果,奖励:没有循环:)

    $(".test").change(function() {

      if($('.test option:selected').is('[value="hide"]')) {
        $("#bb").prop("disabled", true)
      } else {
        $("#bb").prop("disabled", false)
      }
    })

演示:

$(".test").change(function() {

  if ($('.test option:selected').is('[value="hide"]')) {
    $("#bb").prop("disabled", true)
  } else {
    $("#bb").prop("disabled", false)
  }

})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class='test'>
<option value='open'>AA</option>
<option value='hide'>BB</option>
</select>

<select class='test'>
<option value='open'>AA</option>
<option value='hide'>BB</option>
</select>

<button id='bb'>test me</button>