如何检查输入值是否改变?

时间:2013-04-26 13:19:07

标签: javascript jquery

我正在尝试检查输入是否已更改。问题是 - 如果我将使用此代码:

trigger.keyup(function() {
    current_input = getSearchString();
    is_changed = (current_input != previous_input);
    previous_input = current_input;
});

当用户在短暂延迟“E”(输入值将为“QE”)之后按下(例如“Q”)并首先释放“Q”键时,此逻辑将中断。 previous_input将设置为“QE”。用户发布“E”键和脚本比较相等的字符串。所以,当输入实际上发生了变化时,对于我的脚本则不然。知道如何解决这个问题或有没有不同的方法(不是用html5事件'输入')?

2 个答案:

答案 0 :(得分:6)

使用keydown的{​​{1}} 代替 ,这样 依赖于用户是否释放钥匙。

答案 1 :(得分:0)

仅依靠关键事件不是一种可靠的机制。例如:什么是用户从剪贴板粘贴文本,或者他是否将文本拖放到文本框中(是的,dnd适用于文本框)。

要考虑所有可能的频道,您可以使用textchanged事件。详情请见http://zurb.com/playground/jquery-text-change-custom-event

$('#selector').bind('textchange', function (e, prevText) {
    // do your stuff here
});