问题描述
- ajax验证用户名是否存在,失败后组阻止表单提交
-
各位大神,求助:
我先是定义了一个变量,在ajax处理完返回值时,根据ajax返回的结果,改变flag的值(初始值定义为false)可是就算是用户名通过验证可以使用,我把flag的改为true,然后return flag 但是没用 提交表单的时候flag的值还是一直是false
各位,帮帮忙 拜托了 (图片是代码)
解决方案
可以采用下面这种请求方式,设置async:false
$.ajax({
url:'iajax_chekusernameIsExist.action',
type:'post',
data:'userName='+values,
async : false, //默认为true 异步
error:function(){
alert('error');
},
success:function(data){
// data是返回数据 成功之下判断
}
});
解决方案三:
这个写法是有问题的
ajax是异步执行的而js却是顺序执行的,当执行到post时,ajax发送请求到后台,但js仍会继续执行,也就是return flag;
ajax的callback会在获取到响应后执行,而这时修改的flag跟返回的flag无关
解决方案四:
async:false,可设置同步访问,这样就可以根据返回的结果做出判断
时间: 2024-10-02 17:11:40