2012-10-24 46 views
1

我知道最快速的檢查表單可以是.keyup().keydown()但如果用戶複製/粘貼一些文本呢? Tha事件將被忽略,但輸入內容可能已更改。更好的方式來檢查與jQuery的輸入表格

另外,如果用戶按下(或讓)例如該事件將觸發查詢的鍵(在我的情況下是無用的)。

是否有任何類似的事件處理程序,如「文本更改」,但在實時檢查?像onchange但作爲處理程序。

+1

你可以使用setInterval()方法和測試它每n毫秒。 – intelis

+0

你想監視變化並在途中格式化嗎?如果不是,那麼爲什麼不通過'blur()'分析呢? – Grzegorz

+0

@Grzegorz我想要監視像typeahead效果的變化,但效率更高(沒有不必要的按鍵操作,但使用複製/粘貼菜單選項,我不能認爲文本輸入有任何其他可能的更改) – Diolor

回答

1
(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); }); 
相關問題