$('#id').change(function () {
if ( $('#id option:selected').val() == 'choice1') {
// do stuff
}
else if ( $('#id option:selected').val() == 'choice2' ) {
// do different stuff
}
});
所以这里发生的是当页面加载时默认选择choice1。当我将下拉菜单更改为choice2时,第一次没有任何反应。当我第二次将其更改回choice1时,它实际上从上一个选择中读取值(choice2)。所以这就像价值观落后一步,就像它在变化发生之前取得价值一样。
任何提示都将不胜感激!
非常感谢!
更新:非常感谢,但是在使用此网站的其他JS上必须有其他内容。之前我曾尝试过.val(),它的行为与选项完全相同:选中 - 有一个迭代延迟,所以它在第一个选择之后开始工作,但它落后于一个。我以前见过这个问题,但我真的不记得我是怎么修的。当我这样做时,我将不得不回答我自己的帖子。感谢大家的回复!
答案 0 :(得分:3)
这可能有效
$('#id').change(function () {
if ( $(this).val() == 'choice1') {
// do stuff
}
else if ( $(this).val() == 'choice2' ) {
// do different stuff
}
});
答案 1 :(得分:0)
只需使用$(this).val()
;而不是$('#id option:selected').val()
选择框的val将是所选选项的val。