JQuery - 对同一对象执行操作以防止覆盖

时间:2014-09-25 14:42:39

标签: jquery

我有2个表单选择。 我会检查select on change的值,如果值为2,我想禁用相同的div。

HTML

<select id="foo">
  <option value="1">1</option>
  <option value="2">2</option>
</select>

<select id="bar">
  <option value="1">1</option>
  <option value="2">2</option>
</select>

JS

$('select#foo').change(function()
{
var eck = $('select#foo option:selected').prop('value');

    if (eck == '2')
    {
        $('#div').prop('disabled', true);
    }
    else
    {
        $('#div').prop('disabled', false);
    }
});

$('select#bar').change(function()
{
var eck = $('select#bar option:selected').prop('value');

    if (eck == '2')
    {
        $('#div').prop('disabled', true);
    }
    else
    {
        $('#div').prop('disabled', false);
    }
});

我的问题是,以这种方式对每个选择的改变事件进行覆盖以前的覆盖。 我该怎么办呢?感谢

1 个答案:

答案 0 :(得分:1)

我认为您要找的是,如果在option[value=2]个元素中选择select,则禁用ID为div的元素。所以

&#13;
&#13;
var $selects = $('#foo, #bar').change(function() {
  $('#div').prop('disabled', $selects.find('[value="2"]').is(':selected'));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="foo">
  <option value="1">1</option>
  <option value="2">2</option>
</select>
<select id="bar">
  <option value="1">1</option>
  <option value="2">2</option>
</select>
<button id="div">div</button>
&#13;
&#13;
&#13;