功能後沒有返回相應的值那麼我得到在這裏是非常簡單的:jQuery的.submit Ajax請求
$("form").submit(function() {
var loc = $("input#location").val();
var response = $.ajax({
url: "checklocation.php",
data: {loc: loc},
async: false,
type: "POST",
success: function(msg) {
if (msg['status'] == "OK") {
return true;
} else {
return false;
}
}
});
return !(response['responseText'].indexOf("ZERO_RESULTS") != -1);
});
checklocation.php返回一個JSON字符串。這兩個回報都沒有被擊中,但是如果我在兩者中都有一個alert(),條件確實有效。但是,如果我在Firebug中逐步完成這項工作,就好像成功函數中的東西永遠不會被執行一樣。
這只是每次都返回true,無論是什麼(表單被提交)。
編輯:
$("form").submit(function() {
var loc = $("input#location").val();
var response = $.ajax({
url: "checklocation.php",
data: {loc: loc},
type: "POST",
success: function(msg) {
if (msg == '1') {
return false;
} else {
return true;
}
}
});
});
它仍然會跳過成功的功能,儘管響應是的狀態文本:
即使簡化後的成功。「
您是否嘗試過使用完整和錯誤回調?因爲只有響應來自200或2xx系列狀態碼,纔會執行「成功」。使用'done,fail,always'會比JQuery 1.8棄用更好。 – 2012-08-03 03:33:38
我試過了,它不會到達那裏。我可以在Firebug中清楚地看到響應有一個200狀態代碼和一個「成功」狀態文本。 – 2012-08-03 03:36:17
爲什麼你使用'async:false'?是否有意義?在JQuery 1.8中也不推薦使用 – 2012-08-03 04:59:50