我想$.ajax在表单上触发,onsubmit并且return true只有在 Ajax 返回之后才有效。
例如:
<form id="myForm" onsubmit="return ajaxValidation();">
<input id="myString" name="myString" type="text" />
<input type="submit" value="Submit" />
</form>
在 Javascript 中:
function ajaxValidation() {
$.ajax({
async: false,
type: "POST",
url: "ajax.php",
data: { myString: $("#myString").val() }
}).success(function( response ) {
alert(response); //Got 'ok'
if (response=="ok") {
return true; //mark-1
} else {
alert("Oh, string is wrong. Form Submit is cancelled.");
}
});
return false; //mark-2
}
当我提交时,我得到了警报ok,但它返回了“假”,因为它跳到了最后return false一行。
为什么?我无法理解。实际上,它应该打到return true线。(而且,即使在 之后return true,该功能也应该停在那里并从中出来)
所以它现在的意思是,does NOT waitAjax 返回的父函数。相反,它不断地运行到最后。知道为什么,请。如何让父函数等待Ajax?