文本輸入元素沒有更改事件嗎?當我將更改事件處理程序附加到文本輸入時,它不會被解僱。 Keyup被觸發,但是keyup不足以檢測到更改,因爲顯然有其他方法可以將文本輸入到輸入中。jQuery文本框更改事件
回答
沒有真正的解決方案 - 即使在上面給出的其他問題的鏈接。最後我決定使用setTimeout
並調用每秒檢查一次的方法!不是一個理想的解決方案,但是我所調用的解決方案和代碼很簡單,不會隨時被調用而影響性能。
function InitPageControls() {
CheckIfChanged();
}
function CheckIfChanged() {
// do logic
setTimeout(function() {
CheckIfChanged();
}, 1000);
}
希望這可以幫助別人的未來,因爲它似乎有acheiving此使用的事件處理程序沒有萬無一失的方法...
更改事件僅在輸入失去焦點(並被更改)後纔會觸發。
如果您真的想知道任何文本何時更改,就像它發生更改一樣,您會停止輪詢輸入。也就是說,將setInterval與一個函數進行比較,該函數將輸入的當前值與先前存儲的值進行比較(通過比函數範圍更高的某個變量)。如果這兩個值不匹配,則發生更改。然後,將當前值存儲到另一個變量中以進行下一次檢查。 – ventaur 2011-05-26 14:21:45
的HTML4規範爲<input>
element指定以下腳本事件可用:
的onfocus,的onblur,ONSELECT,平變化, 的onclick,onfocus此,onmousedown事件, onmouseup,的onmouseover,的OnMouseMove, 的onmouseout,onkeypress事件,的onkeydown, 的onkeyup
這裏是結合對所有這些事件的一例,表示這是怎麼回事http://jsfiddle.net/pxfunc/zJ7Lf/
我想你可以過濾掉哪些事件是真正培訓相關您的情況,並檢測一下文本值之前和在事件發生後,確定變更
我想過使用變化,焦點,模糊,鍵盤和mouseup在一起 - 然而mouseup只會在鼠標移動到texbox上時觸發,這意味着它不會從上下文菜單中粘貼用戶,粘貼可能是粘貼在文本輸入範圍之外 – jcvandan 2011-05-26 14:33:55
看起來像新的瀏覽器支持'paste'和'input'事件,我在這裏找到它們之後添加了這些事件,[jquery - 如何檢測鼠標右鍵點擊並使用JavaScript粘貼](http:// stackoverflow.com/questions/441631/how-to-detect-right-mouse-click-paste-using-javascript)...heres [更新的小提琴](http://jsfiddle.net/pxfunc/zJ7Lf/1/ ) – MikeM 2011-05-26 14:38:26
潛在有用,但如果他們沒有非常廣泛的支持,真的不能使用它們! – jcvandan 2011-05-26 14:40:59
我發現這工作:
$(document).ready(function(){
$('textarea').bind('input propertychange', function() {
//do your update here
}
})
我廣泛使用它來驗證與ajax內聯。我認爲正在討論的新突變事件將取代某些功能,但該解決方案已經在Firefox,Chrome,IE 10和Safari中測試過,並且已知可以正常工作。 – 2013-07-02 17:45:15
可以實現它:
$(document).ready(function(){
$('#textBox').keyup(function() {alert('changed');});
});
或改變(柄複製與粘貼右鍵點擊):
$(document).ready(function(){
$('#textBox2').change(function() {alert('changed');});
});
這裏是Demo
$('#input').on("input",function() {alert('changed');});
爲我工作。
- 1. 文本框更改事件
- 2. 文本框文本更改事件
- 3. jQuery:自動完成後文本框文本更改事件?
- 4. 文本框更改事件 - Java腳本
- 5. 更清晰的jquery文本框更改事件
- 6. 取消WPF文本框更改事件
- 7. Datareport文本框更改事件
- 8. 更改事件內的文本框值?
- 9. 贏得文本框Rt更改事件
- 10. 更改文本的JQuery事件
- 11. asp標籤文本更改事件jquery
- 12. 如何讓文本框的前值jQuery中的更改事件
- 13. jQuery動態生成文本框更改事件
- 14. 使用jquery重置文本框值更改事件
- 15. 文本框更改事件不會立即生效jquery
- 16. JLabel更改文本事件
- 17. Gridview文本更改事件
- 18. JavaFX文本更改事件
- 19. 確定哪個文本框已觸發文本更改事件
- 20. jquery複選框更改事件
- 21. jquery可見選擇框更改事件
- 22. jquery更改事件
- 23. jquery更改事件
- 24. jQuery文本更改條件
- 25. 更改VB列表框'onclick'事件的文本框
- 26. 如何強制更改jquery事件,而無需用戶更改文本框中的文本?
- 27. 在jQuery中未更改組合框的更改事件
- 28. 更改jquery對話框按鈕文本
- 29. 更改計算jQuery文本框
- 30. jQuery驗證插件 - 更改asp文本框的邊框顏色
也許這將有助於:http://stackoverflow.com/questions/1481152/jquery-how-to-detect-a-textboxs-content-has-changed – Bashwork 2011-05-26 14:13:38
你使用$('input')。change( function(){do something}); ? – tenshimsm 2011-05-26 14:20:42
是的,我使用.change和.keyup,但它們不夠,請在下面看到我的答案... – jcvandan 2011-05-26 14:29:10