Nir*_*shi 3 javascript php forms ajax jquery
我正在对提交按钮单击事件进行 ajax 调用以检查字段验证服务器端。当我验证失败时,ajax 响应会给出正确的错误消息,返回 false,并停止表单提交到操作 url。但是当我收到“成功”的响应时,表单仍然没有提交到操作 url 脚本。
在ajax响应之前执行return语句是这种情况吗?
还有为什么没有提交表单?
这是代码:
<input type="submit" onclick="return validate();" name="submit" value="Proceed" />
<script type="text/javascript">
var flag=false;
function validate(){
$.ajax({
type:"POST",
url:"../chk.php",
data:datastring,
cache: false,
success: function (result) {
if(result.toString() == "success" ){
flag=true;
}
else{
$('#error').css('display', 'block');
$('#error').css('color','red');
$('#error').text(result.toString());
flag=false;
}
}
});
return flag;
}
</script>
Run Code Online (Sandbox Code Playgroud)
一种方式是
用 async : false
将 async 设置为 false 意味着您正在调用的语句必须在调用函数中的下一个语句之前完成。
$.ajax({
type:"POST",
url:"../chk.php",
data:datastring,
cache: false,
async : false,
success: function (result) {
Run Code Online (Sandbox Code Playgroud)
还有为什么要返回ajax函数之外的值,如果不使用则返回ajax成功内的值 async : false
$.ajax({
type:"POST",
url:"../chk.php",
data:datastring,
cache: false,
success: function (result) {
if(result.toString() == "success" ){
flag=true;
}
else{
$('#error').css('display', 'block');
$('#error').css('color','red');
$('#error').text(result.toString());
flag=false;
}
}
return flag;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1839 次 |
| 最近记录: |