我想看看是否已选择或取消选择特定的下拉菜单项。
我试过了
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语句。
答案 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();
}
});