jQuery的自动完成更改事件:这是如何工作的?

时间:2012-09-13 13:09:41

标签: jquery jquery-ui autocomplete

根据官方文件,此事件是:

  

当字段模糊时触发,如果值已更改;

现在,它如何知道价值是否已经改变?它存放在某个地方吗?我问的原因是:我可以复制这种行为吗?

由于

2 个答案:

答案 0 :(得分:0)

我认为它会存储原始值并将当前值与原始值进行比较。

如果通过复制意味着触发事件,那么您可以在此处阅读:http://api.jquery.com/trigger/

答案 1 :(得分:0)

这是由浏览器解决的。您还可以通过将处理程序附加到onchange事件来触发文本输入上更改的值:

<input onchange="alert('value changed!');" />

还有Javascript:

document.getElementById("my_text_input").onchange = function(){
    alert("value changed!");
}

当然,您可以复制此行为。你可以try it yourself here

[编辑]
你有onblur事件,每次用户离开控件时都会触发 您可以跟踪输入值,或者设置一个标志,以便更改和模糊事件:

(function(){
    var changed = false;

    document.getElementById("my_text_input").onchange = function(){
        changed = true;
    }
    document.getElementById("my_text_input").onblur = function(){
        if (!changed) {
            //Your logic here
        }
        changed = false; //set it back to false for next loss of focus
    }
})();