Отправка формы Javascript при нажатии Enter не работает в Firefox с сохраненным паролем - PullRequest
0 голосов
/ 27 апреля 2011

У меня есть простая форма входа в систему, которая фиксирует имя пользователя / пароль с некоторым простым Javascript (JQuery) для отправки формы, когда пользователь нажимает, введите в любое из этих полей.Вот соответствующие биты кода:

Форма:

<form id="loginForm">
    <input type="text" id="username" />
    <input type="password" id="password" />
    etc...
</form>

Javascript:

$('#username, #password').bind('keypress', function(e) {
    if (e.which == 13) {
        $('#loginForm').submit();
        e.preventDefault();
    }
});

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

Если я введу первые несколько букв моего имени пользователя в текстовое поле имени пользователя, Firefox предоставит мне варианты, которые он запомнил.Если я нажимаю стрелку вниз, чтобы выделить имя пользователя, а затем нажимаю клавишу ввода, чтобы выбрать его, тогда мой Javascript запускает до того, как Firefox автоматически заполнит поле пароля.Это приводит к отправке пустого пароля.

Он отлично работает при использовании той же функции «сохранить пароли» в Chrome.

Есть идеи, как обойти это?

1 Ответ

1 голос
/ 28 апреля 2011

Изменено нажатие клавиш на keyup и все работает отлично.

$('#username, #password').bind('keyup', function(e) {
    if (e.which == 13) {
        $('#loginForm').submit();
        e.preventDefault();
    }
});

Спасибо CoolEsh за подсказку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...