在事件.change上使用jquery时,input仅当输入失去焦点时才会触发事件
.change
input
就我而言,我需要在输入值更改后立即调用该服务(检查值是否有效)。我该怎么做?
更新为澄清和示例
方法1。input事件
在现代浏览器中使用input事件。当用户在任何时候将值从一个值更改为另一个值时,都将在用户键入文本字段,粘贴,撤消操作时触发此事件。
在jQuery中这样做
$('#someInput').bind('input', function() { $(this).val() // get the current value of the input field. });
从jQuery 1.7开始,替换bind为on:
bind
on
$('#someInput').on('input', function() { $(this).val() // get the current value of the input field. });
方法2。keyup事件
keyup
对于较旧的浏览器,请使用keyup事件(一旦释放了键盘上的某个键,就会触发该事件,该事件会产生某种误报,因为释放“w”时,输入值会更改,并且该keyup事件会触发keyup事件触发时释放“shift”键,但未对输入进行任何更改。)如果用户右键单击并从上下文菜单中粘贴,此方法也不会触发:
$('#someInput').keyup(function() { $(this).val() // get the current value of the input field. });
方法3。计时器(setInterval或setTimeout)
setInterval
setTimeout
为了解决这些限制,keyup您可以设置一个计时器来定期检查输入的值以确定值的变化。您可以使用setInterval或setTimeout进行此计时器检查。请参阅以下SO问题的标记答案:jQuery文本框更改事件,或查看小提琴,获取使用focus和blur事件的工作示例,以启动和停止特定输入字段的计时器
focus
blur