Проблема с keyPress в Mozilla - PullRequest
       10

Проблема с keyPress в Mozilla

0 голосов
/ 13 апреля 2010

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

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

Ответы [ 3 ]

0 голосов
/ 13 апреля 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 я думаю, что вы ввели неверный идентификатор.

0 голосов
/ 13 апреля 2010

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

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

0 голосов
/ 13 апреля 2010

Ваш код 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;
...