【问题标题】:jquery ajax call errors in chrome onenter with no responseTextchrome onenter中的jquery ajax调用错误,没有responseText
【发布时间】:2010-02-04 21:44:35
【问题描述】:

我已经构建了一个登录页面,该页面使用 .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 中调试它?

【问题讨论】:

  • 我已经解决了一个不同的问题,现在可以在 IE7 和 IE8 中进行测试。它也可以在 IE 中以两种方式工作......但仍然无法让“输入”在 Chrome 中工作。
  • 有趣的开发......如果我在 goLogin 函数的开头放置了一个警报,那么“enter”在 Chrome 中有效。为什么在 .ajax 调用之前暂停会影响其成功/失败?

标签: jquery google-chrome


【解决方案1】:

你也可以让 jQuery 点击链接:

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

无论按钮做什么,现在 enter 也会起作用...这往往会绕过一些浏览器问题,就像您所看到的那样。

【讨论】:

  • 我按照建议给了按钮一个 ID 并调用了点击。这似乎没有什么区别,在 Firefox 中仍然可以双向使用,但只能通过单击 chrome 中的按钮
【解决方案2】:

我有同样的问题。使用 keypress 并返回 false 修复了 Chrome 和 Safari 中的问题。

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

希望这会有所帮助.. BuR

【讨论】:

    【解决方案3】:

    这个问题实际上是由我的 html 中的错误引起的。我不小心有嵌套表单,Chrome 没有呈现第一个嵌套表单(但它确实呈现了所有后续嵌套表单,因此页面的其余部分看起来和工作正常)。

    【讨论】:

      猜你喜欢
      • 2013-07-03
      • 2013-10-24
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      • 2016-05-20
      • 1970-01-01
      • 2014-11-22
      • 1970-01-01
      相关资源
      最近更新 更多