2013-02-18 23 views
0

我在窗體中有一個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不是文本區域的官方屬性和我知道如何處理它(以防萬一有人提到它)。

+1

它似乎爲我工作:http://jsfiddle.net/XhFzD/1/。我假設了很多並清理了一堆東西之後。你確定沒有空白字符,因爲你的'<?php echo $ text?>'在它的行前後有一些空格嗎?所有的空間都被計算在一個'