我看过关于这个主题的各种帖子。我正在为文本框制作一个字符递减计数器(例如'98 Characters Left'),我可以让它触发的唯一事件是keydown()
,但是当文本粘贴到文本框时它不会处理它。我尝试制作一个updateCharCount()
功能并将其设置为每个事件(一次全部,并且每个单独:keyup,keydown,keypress,change。
我还尝试使用bind()
and设置处理程序live()
。如果我尝试同时为 keydown 和 keyup 设置处理程序,那么无论发生什么,无论发生什么,都不会触发,尽管我在任何地方都读到了这就是解决方案。这怎么可能?
另外,当我只处理keydown()
事件时,我会遇到一些奇怪的行为。(顺便说一句,我的文本框上的 maxLength 属性设置为 100)如果我输入到最大字符数,退格一次或两次,然后再次输入到最大计数,即使它会显示 '1 Character(s) Left'已最大化,如果我从那里退格一次,它会显示“0 个字符”。这是我的代码:
function updateCharCount(){
var clientmsg = $("#usermsg").val();
var count = $("#usermsg").attr("maxLength") - clientmsg.length;
$("#charsleft").html(count);
}
$("#usermsg").keydown(updateCharCount());
如果有人可以解释这种奇怪的行为会很好,但我真正想知道的是为什么如果 .change() 被如此广泛使用,它对我不起作用,也不 .bind('change', ... ) 或 .live('改变', ...)