value.length 退格时没有按预期工作

value.length not working as expected when backspacing

我正在尝试使用 javascript 获取文本区域的字符,当您在​​文本区域内键入文本时它工作正常,但是当您使用退格时,它给出了错误的长度字符数。

<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>

例如:

比如说,当文本区域中有 25 个字符时,您就开始了。然后当你使用一次退格键时:

提示:26个字符; 再次使用退格键,它会提醒:25个字符; 然后,24、23、22、21。

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

可能是因为您正在侦听 onkeydown 事件,并且直到退格键再次启动后才会记录每个字符的删除?

这个有效:

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()