Javascript 为什么jQuery.change()只在我离开元素时触发?
我有一个textarea元素,我想在输入时打印textarea上方写入的字符数。HTML如下所示: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')这是更改事件的已知
<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
});