2009-10-08 59 views
8

在發佈這個問題之前,我注意到之前已經發布過關於此主題的類似問題,但是,在這種情況下用戶沒有通過使用鍵盤與文本字段進行交互,在這種情況下,將文本字段綁定到「粘貼「行動或任何其他漂亮的建議不適用於我的情況。使用JQuery,當字段仍然有焦點時,如何檢測文本輸入的值是否已更改?

我們的用戶正在輸入一個從條形碼掃描的字符串值。我們試圖做的是避免讓用戶在掃描信息後放下掃描儀到下一個領域的煩惱。但是,我在檢測文本字段值的變化時遇到問題,但它仍然有焦點。

這是我們錯過的難題的唯一部分,因爲將焦點應用於表單上的下一個字段是微不足道的。當輸入設備不是鍵盤時,任何人都可以闡明如何檢測文本字段值的變化嗎?我已經嘗試使用change()事件,但它不會觸發,直到該字段不再具有焦點。

+0

如果您打印自己的條形碼,您可以嘗試在代碼的末尾放置製表符,我已經在VB.net中以這種方式工作。 – TheVillageIdiot 2009-10-08 17:29:36

回答

8

您可以傾聽keypress事件。

<input type="text" id="target" value="" /> 

var target = $('#target'), 
    val = target.val(); 

function monitor() 
{ 
    var current_val = $(this).val(); 
    if (current_val != val) { 
     console.log('changed from', val, 'to', current_val); 
     val = current_val; 
    } 
} 

target.keypress(monitor); 
+0

按鍵完美工作。出於某種原因,我在回調函數中導致輸入被切斷的代碼。謝謝!!! – 2009-10-08 17:50:30

+1

不客氣。 – slikts 2009-10-08 17:54:15

+3

用鼠標插入數值或以編程方式更改數值或形成自動填充功能如何?只有致命的投票? – Roman 2009-11-27 13:57:36

相關問題