根據官方文件,這一事件是:jQuery的自動完成更改事件:這是如何工作的?
當現場模糊觸發,如果該值已經改變;
現在,它是如何知道值是否已經改變?它存儲在什麼地方?我問的原因是:我可以複製這種行爲嗎?
謝謝
根據官方文件,這一事件是:jQuery的自動完成更改事件:這是如何工作的?
當現場模糊觸發,如果該值已經改變;
現在,它是如何知道值是否已經改變?它存儲在什麼地方?我問的原因是:我可以複製這種行爲嗎?
謝謝
這是由瀏覽器解決。您還可以通過一個處理程序連接到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
}
})();
是的,但是「onchange」事件被觸發_whenever_輸入被改變,而不是如果內容改變(例如,如果輸入內部有「string」,然後刪除它並重寫「string」,則事件是觸發)。自動完成版本不會這樣做。它什麼時候檢查值是否相同?否則,更改事件不會被觸發。 – Heathcliff
你錯了,如果你重寫相同的值,它不會觸發。 親身體驗http://jsfiddle.net/rWzqJ/ –
真的,我的不好。儘管如此,我仍然有同樣的問題(請在Dipaks的第一篇文章中看到我的評論):有沒有辦法將它變成一個布爾值?像$(this).isChanged()或其他東西。 – Heathcliff
我認爲它存儲的原始值和比較當前值與模糊上的原始值。
如果重複你的意思是觸發事件,那麼你可以在這裏閱讀:
通過複製什麼是你想達到的行爲? – Dipak
看看http://stackoverflow.com/questions/6431459/jquery-autocomplete-trigger-change-event – Adrian
@Dipaks:每當用戶通過「TAB」轉義焦點時,我需要控制輸入的行爲** AND * *輸入的內容不會改變。 – Heathcliff