ajax提交返回boolean类型
function validateEnameExsit() {
var ename = $("#ename").val();
if($.trim(ename)=='') {
$("#result").attr('color','#FF0000');
$("#result").html('用户名不能为空');
return false;
}else{
$.ajax({
url : "empManagerAction!validateEname.do",// 后台处理程序
type : "post",// 数据发送方式
dataType : "json",// 接受数据格式
data : "employeeForm.ename="+ename,// 要传递的数据
cache: false,//禁用缓存
// 回传函数
success : function(responsedata) {
if(responsedata=='0'){
$("#result").attr('color','B3E6DF');
$("#result").html('恭喜!该用户名还未被注册!');
return true;
}else if(responsedata=='1'){
$("#result").attr('color','#FF0000');
$("#result").html('对不起!用户名已存在!');
return false;
}
}
});
}
}
解决方案很多,提供以下几个:
1
、在ajax方法外面定义临时遍历,接收boolean值也就是success中的值,这种方式需要同步才能接收到值
因为ajax不会等这个方法运行完了才执行下面的代码的,当然可以用setTimeout延时下
2
、可以把你的值放在$.dada()的缓存中保存;如:$(
"div"
).data(
"temp"
, true);alert($(
"div"
).data(
"temp"
));
3
、可以设置在属性中保存,然后取到。如果不想要了还可以删掉
$(this).
attr
(
"temp"
, true);
var temp = false;
$.ajax({
url
:
"empManagerAction!validateEname.do"
,// 后台处理程序
type :
"post"
,// 数据发送方式
dataType :
"json"
,// 接受数据格式
data :
"employeeForm.ename="
+ename,// 要传递的数据
cache: false,//禁用缓存
// 回传函数
success : function(responsedata) {
if(responsedata==
'0'
){
$(
"#result"
).
attr
(
'color'
,
'B3E6DF'
);
$(
"#result"
).html(
'恭喜!该用户名还未被注册!'
);
//return true;
temp = true;//$(
"#result"
).
attr
(
"temp"
, true);
}else if(responsedata==
'1'
){
$(
"#result"
).
attr
(
'color'
,
'#FF0000'
);
$(
"#result"
).html(
'对不起!用户名已存在!'
);
//return false;
temp = false;//$(
"#result"
).
attr
(
"temp"
, false);
}
}
});
alert($(
"#result"
).
attr
(
"temp"
));//这样就可以取值了