我在窗体中有一个textarea。键入文本时将显示<p>
以及textarea中的字符数。问题在于第一个字符不被察觉。所以当我输入第一个字符时,剩余的字符仍然是75,字符不显示在<p>.
当我输入“abc”时,只显示“ab”,剩下的字符是73而不是72.之后,我删除在结尾处显示“c”,然后在“<p>
”中显示“abc”。这就像它总是落后于一步。在textarea中键入的显示文本总是落后一步
简单的<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
不是文本区域的官方属性和我知道如何处理它(以防万一有人提到它)。
它似乎为我工作:http://jsfiddle.net/XhFzD/1/。我假设了很多并清理了一堆东西之后。你确定没有空白字符,因为你的'<?php echo $ text?>'在它的行前后有一些空格吗?所有的空间都被计算在一个'
里面我也在[jsfiddle](http://jsfiddle.net/amullins/gxsWm/)上试了一下,它工作正常。不确定问题出在哪里。 – 2013-02-18 20:59:57
@伊恩:不,这部分是好的(我删除它检查)。问题应该在代码的其他部分,因为它在一个空白的.html文件中工作。 – erdomester 2013-02-18 21:06:30