我有一个表单中的文本区域。键入文本<p>
时,文本区域中的字符数以及字符数都会显示。问题是没有感知到第一个字符。所以当我输入第一个字符时,剩余的字符仍然是 75,并且字符没有显示在<p>.
当我输入“abc”时,只显示“ab”,剩余的字符是 73 而不是 72。之后我删除了"c" 从末尾开始,然后 "abc" 显示在<p>
. 就好像它总是落后一步一样。
一个简单<input type="text">
的它工作正常。
<textarea name="text" cols="56" rows="2" onKeyDown="drawAd();" onKeyUp="drawAd();" onFocus="drawAd();" maxlength="75" >
<?php echo $text?>
</textarea>
function drawAd()
{
var draw_adtext = document.forms["MyForm"]["adtext"].value;
var adtext = document.getElementById('p_adtext');
var adtext2 = document.getElementById('p_adtext2');
if (draw_adtext != "") {
adtext.innerHTML = draw_adtext;
adtext2.innerHTML = draw_adtext;
} else {
adtext.innerHTML = "";
adtext2.innerHTML = "";
}
document.getElementById('textcount').innerHTML = 75 - document.forms["MyForm"]["adtext"].value.length + " chars left";
}
Ps:我知道 maxlength
不是 textarea 的官方属性,我知道如何处理它(以防万一有人注意到它)。