使用JQuery,如何在字段仍具有焦点时检测文本输入的值是否已更改?

时间:2009-10-08 17:22:51

标签: jquery events textbox

在发布此问题之前我注意到之前在此主题上发布了类似的问题,但是在这种情况下,用户没有通过使用键盘与文本字段进行交互,在这种情况下将文本字段绑定到“粘贴”操作或任何其他漂亮的建议在我的情况下都不起作用。

我们的用户正在输入从条形码扫描的字符串值。我们试图做的是避免在扫描信息后让用户放下扫描仪进入下一个字段的麻烦。但是,我在检测文本字段值的变化时遇到问题,但它仍然具有焦点。

这是我们遗漏的唯一部分,因为将焦点应用于表单上的下一个字段是微不足道的。任何人都可以了解当输入设备不是键盘时如何检测文本字段值的变化?我已经尝试过使用change()事件,但是在字段不再具有焦点之前它不会触发。

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

嗯,总有蛮力:用setInterval()轮询它。