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()
我正在尝试使用 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()