jQuery:输入更改时的事件

时间:2009-09-23 06:45:48

标签: jquery forms combobox

我有一个选择,我想根据选择的内容运行各种功能。我还使用flexselect插件http://rmm5t.github.com/jquery-flexselect/将选择框转换为组合框。结果是一个输入框。

我希望在输入框文本更改时运行一个函数,不在模糊,但是立即运行。我认为没有办法做到这一点。我不能只做一个密钥,因为通常选择是从flexselect下拉列表中发生的,而不是键入的。使用change事件需要输入框模糊,这不是用户期望的行为。

这个问题有解决方法吗?

谢谢!

3 个答案:

答案 0 :(得分:7)

请注意,jquery bind()允许多个事件。

 $('#selector').bind('keyup mouseup change',function(e){
       alert(e.type);
});

答案 1 :(得分:2)

这是一个黑客,但你可以修改flexselect.js文件,以便在更改文本框的值时引发自定义事件。在调用“this.input.val(”(如第231行)的文件中的任何位置后插入:trigger(“myCustomEvent”);然后从现有代码绑定到它:

$('#selector').bind('myCustomEvent',function(){
       alert('myCustomEvent');
});

答案 2 :(得分:0)

为什么不使用onblur和onkeyup的组合?

当然你也可以创建一个计时器(window.setTimeout) - 不是很好或鼓励处理这个问题的方法,但它应该可以工作。