Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 textarea计数字符长度错误_Javascript_Jquery_Textarea - Fatal编程技术网

Javascript textarea计数字符长度错误

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中键入第一个字符时,它仍然显示0,第二个字符的计数为1。不知道为什么?我正在为此使用keydown事件

$(".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想要做的事情。你应该总是对你改变了什么以及为什么你应该总是对你改变了什么和为什么留下解释