我知道最快速的檢查表單可以是.keyup()
或.keydown()
但如果用戶複製/粘貼一些文本呢? Tha事件將被忽略,但輸入內容可能已更改。更好的方式來檢查與jQuery的輸入表格
另外,如果用戶按下(或讓)例如該事件將觸發查詢的鍵(在我的情況下是無用的)。
是否有任何類似的事件處理程序,如「文本更改」,但在實時檢查?像onchange
但作爲處理程序。
我知道最快速的檢查表單可以是.keyup()
或.keydown()
但如果用戶複製/粘貼一些文本呢? Tha事件將被忽略,但輸入內容可能已更改。更好的方式來檢查與jQuery的輸入表格
另外,如果用戶按下(或讓)例如該事件將觸發查詢的鍵(在我的情況下是無用的)。
是否有任何類似的事件處理程序,如「文本更改」,但在實時檢查?像onchange
但作爲處理程序。
(function($){
$.fn.oneinput = function(callback) {
function testInput(){
var tb = jQuery(this);
var currentValue = tb.val();
if (tb.data("lastInput") !== currentValue) {
tb.data("lastInput",currentValue);
if(callback) {
callback.call(this)
};
}
return this;
}
$(this).bind("keyup input paste", testInput);
};
}(jQuery));
$('input').oneinput(function(){ console.log(this.value); });
您可以隨時檢查用戶是否使用bind()JQuery方法複製/粘貼文本。有一個關於堆棧溢出類似的問題,可以在這裏找到:How do you handle oncut, oncopy, and onpaste in jQuery?
你可以使用setInterval()方法和測試它每n毫秒。 – intelis
你想監視變化並在途中格式化嗎?如果不是,那麼爲什麼不通過'blur()'分析呢? – Grzegorz
@Grzegorz我想要監視像typeahead效果的變化,但效率更高(沒有不必要的按鍵操作,但使用複製/粘貼菜單選項,我不能認爲文本輸入有任何其他可能的更改) – Diolor