我在窗體中有一個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