Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么jQuery.change()只在我离开元素时触发?_Javascript_Jquery_Charactercount - Fatal编程技术网

Javascript 为什么jQuery.change()只在我离开元素时触发?

Javascript 为什么jQuery.change()只在我离开元素时触发?,javascript,jquery,charactercount,Javascript,Jquery,Charactercount,我有一个textarea元素,我想在输入时打印textarea上方写入的字符数。HTML如下所示: <p id="counter"></p> <textarea id="text"></textarea> 但是当我在文本区域外点击时,计数器才会“更新”。为什么呢?我希望计数器在编写时能够动态更新。尝试使用事件,而不是更改。在操作中查看它:try.on('keyup')或.on('keypress')或.on('keydown')这是更改事件的已知

我有一个textarea元素,我想在输入时打印textarea上方写入的字符数。HTML如下所示:

<p id="counter"></p>
<textarea id="text"></textarea>

但是当我在文本区域外点击时,计数器才会“更新”。为什么呢?我希望计数器在编写时能够动态更新。

尝试使用事件,而不是更改。在操作中查看它:

try.on('keyup')或.on('keypress')或.on('keydown')这是更改事件的已知行为。直到元素失去焦点,它才会触发

当元素的值更改时,将更改事件发送到元素。这 事件仅限于元素、框和 元素。对于选择框、复选框和单选按钮,事件 当用户使用鼠标进行选择时立即激发, 但对于其他元素类型,事件延迟到 元素失去焦点

我会将脚本绑定到keyup(您可以使用其他键事件,但在这种情况下,up最有意义):


它允许检测按键事件,用鼠标粘贴数据

嗯。。那很容易。谢谢但是您知道为什么jQuery.change()的行为像onblur而不是onchange吗?这是预期的行为。我对我的答案进行了编辑,以使其更准确complete@MildFuzz请避免使用链接缩短服务:没有必要这样做,因此,它所做的只是混淆链接点的位置。如果用户使用鼠标粘贴某些信息只是为了注意指定此行为的位置,则不会触发keyup:当控件失去输入焦点且自获得focus@lonesomeday后其值已被修改时,会发生更改事件,现在就有意义了。Tnx。
jQuery( "#text" ).change( function(){
    var numberOfChars = jQuery( "#text" ).val().length;
    jQuery( "#counter" ).html( numberOfChars );
});
jQuery( "#text" ).keyup(function(){
    var numberOfChars = jQuery( "#text" ).val().length;
    jQuery( "#counter" ).html( numberOfChars );
});
$('input#myId').bind('input', function() {
  //some code
});