如何从Ajax中取值
1.需求
添加用户前,js验证表单是否有错误。其中验证用户名有一步骤是通过ajax查数据库是否有同名用户,如果有弹窗并返回一个false,但是这个false取不出来,解决方案就是,将ajax的同步方式(async)改为false
2.代码
function add() {
var b=true;
$.ajax({
type:'post',
url:'${pageContext.request.contextPath}/ajax',
data:{
'flag':'checkUserName',
'username':$("#username").val(),
},
async:false,
dataType:'text',
success:function (data) {
if (data =='non'){
alert("用户名已存在");
// return false; 这里的false根本出不去ajax
b = false;
}
}
})
//测试
alert(b);
//当ajax的异步方式为true时,b为true;当ajax的异步方式为false时,b为false
if (b ==false){
return false;
}
if ($("#username").val().trim()==''){
alert("请输入用户名");
return false;
}else if ($("#usercode").val().trim()==''){
alert('请输入用户编号');
return false;
}
else if ($("#password").val().trim()==''){
alert("请输入密码");
return false;
}else if ($("#userage").val().trim()==''){
alert('请输入年龄');
return false;
} else if ($("#userage").val()>120||$("#userage").val()<0){
alert('请输入正确的年龄');
return false;
}
return true;
}
3.说明
除了将ajax的异步方式改为false,这里我还借用了一个变量b,将ajax中的值取出,否则里面的false根本出不去!!!