2010-02-04 41 views
1

我已經構建了一個登錄頁面,使用.ajax調用通用C#處理程序(.ashx)驗證用戶名和密碼,然後才允許用戶登錄。jQuery的AJAX調用錯誤在鉻沒有迴應文本

如果您在登錄點擊

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

的阿賈克斯調用返回成功,它讓用戶登錄。我想使它所以用戶也可以只按從「ENTER」鍵密碼框:

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

使用Firefox時,兩種方式都可以正常工作並且用戶已登錄。但使用Chrome時,按「Enter」會觸及我的.ajax調用的錯誤功能,並且不會記錄用戶。

參數和響應按照預期,通過Firefox的控制檯看起來完全相同。 什麼會導致這種情況和/或我該如何在Chrome中進行調試?

+0

我已經修復了我正在使用的另一個問題,現在可以在IE7和IE8中進行測試。它在IE中同時適用於兩種方式......但仍然無法在Chrome中使用「輸入」工作。 – wham12 2010-02-08 16:29:52

+0

有趣的開發....如果我在goLogin函數的開始處提醒,那麼「輸入」在Chrome中可以使用。爲什麼在.ajax調用影響其成功/失敗之前暫停? – wham12 2010-02-09 15:56:20

回答

0

這個問題實際上是由我的HTML的錯誤造成的。我意外地嵌套了表單,而Chrome並沒有渲染第一個嵌套表單(但它確實呈現了所有後續的嵌套表單,所以頁面的其餘部分看起來並且工作正常)。

0

你可以只是讓jQuery的點擊鏈接,以及:

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

不管按鈕的功能,回車後會現在要做的,以及...這往往航線周圍的一些瀏覽器的問題,如你所看到的好。

+0

我按照建議給了該按鈕一個ID並呼叫點擊。這似乎沒有什麼區別,在Firefox中仍然有效,但只能通過點擊Chrome中的按鈕 – wham12 2010-02-05 15:39:11

0

我有同樣的問題。使用按鍵並返回false可解決Chrome和Safari中的問題。

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

希望這有助於.. BUR