【发布时间】:2013-05-08 19:05:58
【问题描述】:
我有以下 AJAX 脚本,但由于某种原因,var ok 它没有返回 true 或 false,因此表单可以继续:
function ajax_call(email,title,url){
var email = document.getElementById("email").value;
var title = document.getElementById("title").value;
var url = document.getElementById("url").value;
var parametros = {"emaail":email, "tiitle":title, "uurl":url};
var ok = true;
$.ajax({
data: parametros,
url: 'validate.php',
type: 'post',
error: function () {
alert("An error has occurred! Try Again!");
},
success: function (response) {
if(response == 'bien') { ok = true; } else { $("#ajax_cal").html(response); ok = false; }
}
});
return ok;
}
HTML:
<form onsubmit="return ajax_call();">
...
</form>
PHP:
<?php
//////....
if(!empty($errors)) {
foreach($errors as $error) {
echo '<li>'.$error.'</li>';
}
} else { echo 'bien'; }
?>
一切都很好,除了返回值。 提前致谢。
【问题讨论】:
-
如果不返回真假,返回什么?
-
另外,
response返回什么?它会返回“bien”吗? -
AJAX 是异步的,它总是会返回 true,因为它不会等待响应来改变值。
-
@AnthonyGrist - 完美答案 :) 他的函数可能会返回一个承诺,然后在满足请求时使用该承诺。
-
@AnthonyGrist 所以这是不可能的吗?响应值将返回“bien”或存储在数组中的所有错误。根据价值,我知道它是真还是假。除了验证之外,它做的一切都很好。