所以我在这里得到的是非常简单的:
$("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;
}
}
});
});
尽管响应的 statusText 为“成功”,但它仍会跳过成功函数。