使用jQuery查看下拉菜单选择是否已更改

时间:2013-07-05 19:24:09

标签: jquery

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

我试过了

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语句。

6 个答案:

答案 0 :(得分:17)

你可以在低于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();
    }
});

答案 1 :(得分:2)

试试这些:

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

答案 2 :(得分: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());
    });
});

答案 3 :(得分: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());
  });
 });

答案 4 :(得分: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();
});

答案 5 :(得分:1)

您需要将事件绑定到<select>,而不是<option>。您还应该只检查值是否符合您的要求。

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