jQuery documentation for change()说:
对于选择框,复选框和单选按钮,当用户使用鼠标进行选择时会立即触发事件,但对于其他元素类型,事件将延迟,直到元素失去焦点。
我在不同浏览器的选择框中测试了change(),当控件失去焦点时会触发。这使用户在选择框中更改选项时感觉不到任何事情。
我对此的解决方案是使用click()事件,但我不喜欢它,因为每次单击都会运行该函数,并且用户无法使用键盘来更改选项。
有没有办法让change()像文档所说的那样火上浇油。
答案 0 :(得分:3)
只有当y使用键盘更改选择中的值时,我才会遇到您遇到的相同行为。我这样解决了:
$('select').bind('keyup change', function(){
//put your code here
});
您应该使用keyup,以确保在函数
中获取新值答案 1 :(得分:2)
使用:
.bind('change click keypress', ...)
因为这个事件会被激活多次而不是选择被改变(没有理想的解决方案),你必须检查上次是否有任何改变
// check if changed
if( $(this).data('selection') != $('option:selected', this).val() ) {
// if so, update hidden data
(this).data('selection', $('option:selected', this).val());
... your code
}
答案 2 :(得分:0)
更改事件会触发。你可以发布你的代码吗?确保页面上没有任何js错误。
$('select').change(function(){
//On change code goes here.
});