Mozilla中的keyPress问题

时间:2010-04-13 07:02:03

标签: javascript events mozilla

我正在使用textarea来获取一些输入。标签显示更新的字符。 它在IE中工作正常,但在FF 3.0中,达到最大限制后,它不允许删除或退格键。

我在textarea的按键事件上使用了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;
}

在页面上,我正在使用此

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

一切都很好。问题出现在FF中,当输入达到最大限制时,会显示消息,但不允许删除或退格。

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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。

答案 2 :(得分:0)

如另一个答案所述,您应该删除javascript:属性中的onkeypress前缀,因为这不起作用。

这里还有其他问题。你真的想要实现什么?警报对用户来说非常烦人,因此我建议在页面上显示一个元素,表示已超出字符限制。另外,当超过字符限制时,您希望发生什么?您可以阻止进一步输入(同时不阻止删除)或执行Stack Overflow对其注释字段执行的操作,即在超出字符限制时显示负数但不阻止进一步输入。