14

我想查看是否已选择或取消选择特定的下拉菜单项。

我努力了

jQuery("#dropdownID option[value='selectionKey']").change(function() {
    if (jQuery("#dropdownID option[value='selectionKey']").attr('selected', 'selected'))
        DoSomething();
    else DoSomethingElse();
});

jQuery("#dropdownID").change(function() {
    if (jQuery("#dropdownID option[value='selectionKey']").attr('selected', 'selected'))
        DoSomething();
    else DoSomethingElse();
});

但是这两个块都不是通过更改下拉菜单中的选择来触发的。也就是说,它永远不会到达 if 语句。

4

6 回答 6

22

您可以在低于 1.7 的 jquery 版本中尝试这样的操作:

$("#dropdownID").live('change', function() {
    if ($(this).val() == 'selectionKey'){
        DoSomething();
    } else {
        DoSomethingElse();
    }
});

您可以在大于 1.7 的 jquery 版本中尝试这样的操作:

$("#dropdownID").on('change', function() {
    if ($(this).val() == 'selectionKey'){
        DoSomething();
    } else {
        DoSomethingElse();
    }
});
于 2013-07-05T19:33:51.837 回答
3

试试这些:

jQuery("#dropdownID").change(function() {
    if (jQuery("#dropdownID option[value=selectionKey]").attr('selected', 'selected')) {
        DoSomething();
    }
    else {
DoSomethingElse();
}
});
于 2013-07-05T19:28:48.370 回答
2

甚至更少的代码:

<select id="dropdown1">
 <option value="1">Option 1</option>
 <option value="2">Option 2</option>
 <option value="3">Option 3</option>
</select>

$(function() { //<------- stands for $(document).ready..
  $('#dropdown1').change(function() {
     alert($(this).val());
  });
 });
于 2013-07-05T19:32:15.910 回答
2

试试这个jsFiddle

<select id="dropdown1">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
</select>

$(document).ready(function() {
    $('#dropdown1').change(function() {
        alert($(this).val());
    });
});
于 2013-07-05T19:30:30.143 回答
1

您需要将事件绑定到<select>,而不是<option>. 此外,您应该只检查该值是否是您想要的。

jQuery("#dropdownID").change(function () {
    if ($(this).val() === 'selectionKey'){
        DoSomething();
    }
    else{
        DoSomethingElse();
    }
});
于 2013-07-05T19:30:47.010 回答
1

尝试这个 :

jQuery("#dropdownID").change(function() {
    if (jQuery("#dropdownID option[value='selectionKey']").is(':selected'))
        DoSomething();
    else DoSomethingElse();
});

但是,如果您比较它们,您的第二种方法应该可以工作:

jQuery("#dropdownID").change(function() {
    if (jQuery("#dropdownID option[value='selectionKey']").attr('selected') == 'selected')
        DoSomething();
    else DoSomethingElse();
});

但总是更好用.prop(),它会返回一个布尔值:

jQuery("#dropdownID").change(function() {
    if (jQuery("#dropdownID option[value='selectionKey']").prop('selected')
        DoSomething();
    else DoSomethingElse();
});
于 2013-07-05T19:27:18.510 回答