在更改时,键入时不会立即触发该功能

时间:2013-11-21 19:59:36

标签: jquery

此代码不会立即触发:

$('form').on('change', '#price', function(){
   // code here
});

但仅当我从其他地方的输入框中点击时。

即使在用户输入时如何触发代码?

现在,它一直等到他点击输入框。

4 个答案:

答案 0 :(得分:2)

改为使用input

$('form').on('input', '#price', function(){
   // code here
});

input event

  

<input><textarea>元素的值发生更改时,将同步触发DOM输入事件。此外,当内容发生变化时,它也会对可信任的编辑器进行解雇。在这种情况下,事件目标是编辑主机元素。如果有两个或多个具有contenteditable为true的元素,则“编辑主机”是其父节点不可编辑的最近的祖先元素。同样,它也触发了designMode编辑器的根元素。


您可以使用keyupkeydown个事件,但请注意,如果您在文本框/ textarea中粘贴某些内容时使用keyupkeydown,则更改将不会是烧成。

阅读this thread以查看两个事件之间的差异。

JSFIDDLE

答案 1 :(得分:0)

使用keyup事件在用户输入时执行操作:

$('#price').on('keyup', function() {
     /* do something */
});

答案 2 :(得分:0)

看看这个:http://api.jquery.com/keyup/

并在该页面报告了一个小例子。

 $( "#target" ).keyup(function() {
   alert( "Handler for .keyup() called." );
 });

因此,当您按下某个键并释放它时,该事件将被触发

答案 3 :(得分:0)

我认为 #price 是您的输入。 ??

要在键入时触发代码,您可以使用:

$('form').on('keyup', '#price', function(){
    // code here
});

你可以使用 keyup keydown 活动

http://api.jquery.com/keyup/