在jQuery中检测输入更改?

input上使用jquery .change ,仅当输入失去焦点时才会触发事件 jquery

就我而言,我须要在输入值更改后当即调用该服务(检查值是否有效)。 我该怎么作? api


#1楼

这涵盖了使用jQuery 1.7及更高版本对输入的全部更改: 浏览器

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

#2楼

使用HTML5而不使用jQuery,您能够使用input事件ide

var input = document.querySelector('input');

input.addEventListener('input', function()
{
    console.log('input changed to: ', input.value);
});

每次输入文本更改时都会触发。 this

在IE9 +和其余浏览器中受支持。 spa

此处jsFiddle中进行尝试。 插件


#3楼

正如其余人已经建议的那样,您的解决方案是嗅探多个事件
执行此工做的插件一般会侦听如下事件: code

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

若是您认为合适,也能够添加focusblur和其余事件。
我建议不要超出侦听事件的范围,由于它会将更多的过程加载到浏览器内存中,以根据用户的行为执行。 事件

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


#4楼

您能够将jQuery事件(例如keyupkeypress)与输入HTML元素一块儿使用。 您还能够使用blur()事件。


#5楼

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

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

//要手动触发,请使用:

$('#target').blur();
相关文章
相关标签/搜索