2010-04-13 58 views
0

我使用textarea來獲得一些輸入。標籤顯示已更新的字符。 它在IE中工作正常,但在FF 3.0中,達到最大限制後,它不允許刪除或退格鍵。Mozilla中的keyPress問題

我在textarea的keypress事件上使用了javascript函數。

的JavaScript代碼是

function checkLength() 
{ 
    var opinion = document.getElementById('opinion').value; 
    if(opinion.length > 50) 
     alert("You have reached the mas limit."); 
    else 
     document.getElementById('limit').innerHTML = 50 - opinion.length; 
} 

,同時在頁面上,我用這

一切工作正常。問題出現在FF中,當輸入達到最大限制時,顯示消息,但不允許刪除或退格。

回答

0

你的JavaScript代碼是錯誤的

function checkLength() 
{ 
    var opinion = document.getElementById('opTxtArea').value; 
    if(opinion.length > 50) 
     alert("You have reached the mas limit."); 
    else 
     document.getElementById('limit').innerHTML = 50 - opinion.length; 
} 

你服用了錯誤的元素

var opinion = document.getElementById('opinion').value; 

現在改爲

var opinion = document.getElementById('opTxtArea').value; 
+0

它仍然沒有解決Mozilla中的問題。 達到限制後,不允許退格或刪除。 – sudhansu 2010-04-13 08:17:56

0

試圖消除 「的javascript:」?

的Javascript:

function checkLength() 
{ 
var opinion = document.getElementById('opTxtArea').value; 
if(opinion.length > 50) 
    alert("You have reached the max limit."); 
else 
    document.getElementById('limit').innerHTML = 50 - opinion.length; 
} 

HTML代碼:

<label id="limit">50</label> 
<textarea id="opTxtArea" onkeypress="checkLength();" maxlength="50"></textarea> 

此外,在該行document.getElementById('opinion').value,我覺得你有錯誤的ID輸入。

+0

Thx回覆。 這是一個錯誤。 在糾正了正確的身份證後胸圍,問題仍然存在。 – sudhansu 2010-04-13 08:18:31

0

正如另一個答案中指出的那樣,您應該刪除onkeypress屬性中的javascript:前綴,因爲這沒有用處。

這裏還有其他問題。你究竟想實現什麼?該警報對用戶來說非常煩人,所以我建議在頁面上顯示一個元素來表示已超出字符限制。另外,當超過字符數限制時,你想要發生什麼?你可以阻止進一步的輸入(雖然不會阻止刪除)或者Stack Overflow爲它的註釋字段做什麼,當超過字符數限制時顯示負數,但不阻止進一步的輸入。