Javascript textarea计数字符长度错误
当我在textarea中键入第一个字符时,它仍然显示0,第二个字符的计数为1。不知道为什么?我正在为此使用keydown事件Javascript textarea计数字符长度错误,javascript,jquery,textarea,Javascript,Jquery,Textarea,当我在textarea中键入第一个字符时,它仍然显示0,第二个字符的计数为1。不知道为什么?我正在为此使用keydown事件 $(".textArea").keydown(updateCount()); function updateCount() { count = $(".textArea").val().length; this.$countDiv.text(count + " of 240"); }; 在所有3个更改键控粘贴上触发事件。如果有人试图粘贴到文本框中,它也
$(".textArea").keydown(updateCount());
function updateCount() {
count = $(".textArea").val().length;
this.$countDiv.text(count + " of 240");
};
在所有3个更改键控粘贴上触发事件。如果有人试图粘贴到文本框中,它也会处理 如下
$('.textArea').on('change keyup paste', updateCount());
在所有3个更改键控粘贴上触发事件。如果有人试图粘贴到文本框中,它也会处理 如下
$('.textArea').on('change keyup paste', updateCount());
您需要将函数传递给
$。按下键
,而不是执行的结果:
$(".textArea").keydown(updateCount);
function updateCount() {
count = $('.textArea').val().length;
this.$countDiv.text(count + ' of 240');
}
当您传递执行结果时,必须在
keydown
处理之前执行它。因为keydown
取决于执行updateCount
的结果,所以updateCount
总是在keydown
之前执行,所以您得到了keydown
之前字符串状态的长度,您需要将函数传递给$。keydown
不是执行的结果:
$(".textArea").keydown(updateCount);
function updateCount() {
count = $('.textArea').val().length;
this.$countDiv.text(count + ' of 240');
}
当您传递执行结果时,必须在
keydown
处理之前执行它。因为keydown
取决于执行updateCount
的结果,所以updateCount
总是在keydown
之前执行,所以对于您试图实现的用例,您得到了keydown
之前的字符串状态长度,keydown事件对于它来说是不够的。您必须使用keyup
事件。此时按键完成
注意。对于您试图实现的用例,keydown事件对于它来说是不够的。您必须使用
keyup
事件。此时按键完成
注意。使用
输入事件。这将涵盖对文本框值的所有更改,包括复制和粘贴等(即使使用鼠标)
$(“#文本”)。在(“输入”,updateCount)上;
函数updateCount(){
count=$(“#text”).val().length;
$(“#计数”)。文本(计数+240);
}
使用输入事件。这将涵盖对文本框值的所有更改,包括复制和粘贴等(即使使用鼠标)
$(“#文本”)。在(“输入”,updateCount)上;
函数updateCount(){
count=$(“#text”).val().length;
$(“#计数”)。文本(计数+240);
}
如果使用keyup事件怎么办?按键时使用keyup eventkeydown计数。请尝试使用keyup!如果使用keyup事件呢?按键时使用keyup eventkeydown计数。请尝试使用keyup!按键在按下前触发,这将解决按键前触发的count
keydown错误值,这将解决count
完美答案的错误值,这很简单,并且符合op的要求。完美答案,它很简单,并且做op想要做的事情。你应该总是对你改变了什么以及为什么你应该总是对你改变了什么和为什么留下解释