当对输入使用jquery .change时,只有当输入失去焦点时才会触发事件

在我的例子中,我需要在输入值更改后立即调用服务(检查值是否有效)。我怎么才能做到呢?


当前回答

有jQuery事件,如keyup和keypress,你可以使用输入HTML元素。 您还可以使用blur()事件。

其他回答

有jQuery事件,如keyup和keypress,你可以使用输入HTML元素。 您还可以使用blur()事件。

// .blur在元素失去焦点时触发

$('#target').blur(function() {
  alert($(this).val());
});

//触发手动使用:

$('#target').blur();

如果你想要在元素发生变化时触发事件,那么你可以使用keyup事件。

正如其他人已经建议的那样,在您的情况下,解决方案是嗅探多个事件。 执行这项工作的插件经常监听以下事件:

$input.on('change keydown keypress keyup mousedown click mouseup', handler);

如果你觉得合适,你也可以添加焦点、模糊和其他事件。 我建议不要在事件中进行监听,因为它会根据用户的行为在浏览器内存中加载进一步的程序来执行。

注意:使用JavaScript改变输入元素的值(例如通过jQuery .val()方法)不会触发上述任何事件。 (参考:https://api.jquery.com/change/)。

这涵盖了使用jQuery 1.7及以上版本对输入的所有更改:

$(".inputElement").on("input", null, null, callbackFunction);