2009-10-08 87 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

相关问题