Событие нажатия клавиши не работает в Fire Fox для текстового поля в JS - PullRequest
0 голосов
/ 03 февраля 2011

Я вставляю свой пример кода здесь, я пытаюсь обнаружить клавишу ввода при нажатии клавиши, но она продолжает выдавать ошибку в FF, что e не определено.

 $(document).ready(function() {
      $('#txtDescript').keypress(function(e) {
        clearDescription(e)
    });
  });

Моя разметка

 <input type="text" style="width: 350px; height: 50px;" id="txtDescript" value="Enter Description"class="TextBox"  onclick="clearDescription();"
                            onblur="blurDescription();" />

это функция

function clearDescription(e) {
    debugger
    var KeyID = (window.event) ? event.keyCode : e.keyCode;

    var keyPress = checkBrowser(e);
    if (keyPress == 13) {
        setDescription();
    }
}

Любые решения для этого

1 Ответ

2 голосов
/ 03 февраля 2011

Здесь:

onclick="clearDescription();"

вы не передаете аргумент функции clearDescription, которая ожидает аргумент e. Кроме того, поскольку вы используете jquery, я не очень понимаю, почему вы смешиваете разметку и javascript. Не было бы лучше так:

<input type="text" style="width: 350px; height: 50px;" id="txtDescript" value="Enter Description" class="TextBox" />

и затем:

$(function() {
    $('#txtDescript').keypress(function(e) {
        clearDescription(e);
    }).click(function(e) {
        clearDescription(e);
    }).blur(function(e) {
        // As you haven't shown how the blurDescription
        // function look like you might want to check the arguments
        blurDescription(e);
    });
});

, который также можно записать так:

$(function() {
    $('#txtDescript')
        .keypress(clearDescription)
        .click(clearDescription)
        .blur(blurDescription);
});

При всем этом, вы также можете взглянуть на плагин jquery watermark , который предоставляет функциональность, аналогичную той, которую я подозреваю вы пытаетесь реализовать.

...