在退格时,value.length无法按预期工作

时间:2016-02-08 22:06:25

标签: javascript jquery char textarea

我试图使用javascript获取textarea的字符,并且当你在textarea中输入文字时它工作正常,但是当你使用退格时,它会给出错误的长度人物。

<textarea id = 'textarea' onkeydown = "adjust()"></textarea>

<script>

function adjust() {

var length = document.getElementById("textarea").value.length+1;
alert("length: "+length);

} //end of function adjust()
</script>

例如:

说,你在textarea中的25个字符开始。然后当你使用退格一次时:

警告:26个字符; 再次使用退格键,它会发出警告:25个字符; 然后,24,23,22,21。

这不是真的,因为它应该显示24,23,22,21,20和19。它为什么这样做,我们将如何解决它?

2 个答案:

答案 0 :(得分:0)

是否可能是因为您正在收听onkeydown事件,并且在退格键再次启动之后才会删除每个字符?

答案 1 :(得分:0)

这有效:

function adjust() {

var key = event.keyCode;
if (key == 8 || key == 46) {
var length = document.getElementById("textarea").value.length-1;
} //end of if (key == 8 || key == 46)
else {
var length = document.getElementById("textarea").value.length+1;
}
alert("length: "+length);

} //end of function adjust()