Проблема с нажатием клавиши в Mozilla

Я используюtextarea для получения некоторых входных данных. Метка показывает оставшиеся обновленные символы. Он отлично работает в IE, но в FF 3.0, после достижения максимального предела, он не позволяет удалить или нажать клавишу Backspace.

Я использую функцию javascript для события нажатия клавиши 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, когда входы достигают максимального предела, сообщение отображается, но не позволяет удалить или вернуться.


person sudhansu    schedule 13.04.2010    source источник


Ответы (3)


Ваш код 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;
person rahul    schedule 13.04.2010
comment
тем не менее это не решает проблему в Mozilla. После достижения предела он не позволяет использовать возврат или удаление. - person sudhansu; 13.04.2010

Пробовали удалить "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, я думаю, вы ввели неправильный идентификатор.

person mauris    schedule 13.04.2010
comment
Спасибо за ответ. Это была ошибка. бюст после исправления правильного идентификатора, проблема все еще существует. - person sudhansu; 13.04.2010

Как отмечено в другом ответе, вы должны удалить префикс javascript: в атрибуте onkeypress, так как это бесполезно.

Тут другие проблемы. Чего вы на самом деле хотите достичь? Предупреждение очень раздражает пользователя, поэтому я бы предложил вместо этого отображать на странице элемент, сообщающий о превышении лимита символов. Кроме того, что вы хотите, чтобы произошло, когда лимит символов превышен? Вы можете либо предотвратить дальнейший ввод (но не предотвращая удаление), либо сделать то, что делает Stack Overflow для своих полей комментариев, то есть отображать отрицательное число, когда превышен лимит символов, но не запрещать дальнейший ввод.

person Tim Down    schedule 13.04.2010