我想$.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 wait
Ajax 返回的父函数。相反,它不断地运行到最后。知道为什么,请。如何让父函数等待Ajax?