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

Wil*_*son 8 jquery events textbox

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

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

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

sli*_*kts 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);
Run Code Online (Sandbox Code Playgroud)

  • 如何使用鼠标插入值,或以编程方式更改值或表单自动填充功能?只有致命的民意调查? (3认同)
  • 实际上,在这个实例中使用的正确事件是.keyup(),因为您想在输入值之后更新,而不是之前更新.使用.keypress()将导致错过最后输入的字符. (3认同)