Ошибки вызова jjery ajax в Chrome Onenter без responseText - PullRequest
1 голос
/ 05 февраля 2010

Я создал страницу входа, которая использует .ajax-вызов общего обработчика c # (.ashx) для проверки имени пользователя и пароля перед тем, как позволить пользователю войти в систему.

Если вы нажмете на ссылку для входа

<a href="#" class="ui-state-default ui-corner-all CustomButton" onclick="goLogin();return false">

вызов .ajax успешно завершается, и пользователь входит в систему. Я пытаюсь сделать так, чтобы пользователь мог просто нажать клавишу «Ввод» из поля пароля:

$("#pword").keydown(function(e) {
    if (e.keyCode == 13) {
        goLogin();
    }
});

Используя Firefox, оба способа работают просто отлично, и пользователь входит в систему. Однако в Chrome нажатие клавиши «enter» вызывает функцию ошибки моего вызова .ajax и не регистрирует пользователя.

Параметры и ответы на консоли Firefox выглядят одинаково, как и ожидалось. Что может быть причиной этого и / или как я могу отладить его в Chrome?

Ответы [ 3 ]

0 голосов
/ 12 марта 2010

У меня была та же проблема. Использование нажатия клавиш и возврата false устранило проблему в Chrome и Safari.

$("#pword").keypress(function(e) {
    if (e.keyCode == 13) {
        goLogin();
        return false;
    }
});

Надеюсь, это поможет .. BuR

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

Проблема на самом деле была вызвана ошибкой в ​​моем HTML. У меня случайно были вложенные формы, и Chrome не отображает первую вложенную форму (но отображает все последующие вложенные формы, поэтому остальная часть страницы выглядела и работала нормально).

0 голосов
/ 05 февраля 2010

Вы также можете просто сделать jQuery, нажав на ссылку:

$("#pword").keydown(function(e) {
    if (e.keyCode == 13)
      $(".CustomButton[href=#]").click(); 
      //Really should give <a> an ID, e.g. $("#LoginBtn").click();
});

Что бы ни делала кнопка, теперь будет работать и enter ... это имеет тенденцию обходить некоторые проблемы с браузером, как вы видите.

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