2010-04-13 85 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为它的注释字段做什么,当超过字符数限制时显示负数,但不阻止进一步的输入。