0

textarea用来获取一些输入。标签显示左侧更新的字符。它在 IE 中运行良好,但在 FF 3.0 中,达到最大限制后,它不允许删除或退格键。

我在textarea.

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 中,当输入达到最大限制时,会显示消息,但不允许删除或退格。

4

3 回答 3

0

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

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

于 2010-04-13T09:28:54.593 回答
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;
于 2010-04-13T07:06:25.050 回答
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。

于 2010-04-13T07:06:57.223 回答