function check_add(){
var userid_add = $("#userid_add").val();
$.ajax({
url: "user/checkUserID.action",
type: "post",
data: "userID="+userid_add,
success:function(msg){
if( msg == 1) {
$("#userid_add_warn").html("账号已存在,请重新输入!");
alert( "第一次"+$("#userid_add_warn").html());
}
},
error:function(){alert("返回数据错误!")}
});
alert( "第二次"+$("#userid_add_warn").html());
if( $("#userid_add_warn").html() != ""){
return false;
}
alert( "第三次"+$("#userid_add_warn").html());
alert( "第四次"+$("#userid_add_warn").html());<s:textfield id="userid_add" name="userInfo.userID"
cssStyle="width:155px" label="操作员姓名"></s:textfield>
<em id="userid_add_warn"></em>
问题是第二次 alert 弹出的 $("#userid_add_warn").html() 为 空;
第一次 第三次 第四次 弹出的是 "账号已存在,请重新输入!"
原来是没有alert语句的,但不加
if( $("#userid_add_warn").html() != ""){return false;}就不执行,
非要在前面加个alert,才进入if语句然后返回。原意是不想加的,求解?第二个alert为啥是空?换个延迟函数还是一样!
data:{"userID":userid_add },
请把所有对$("#userid_add_warn").html的操作全部放在success回调函数中。
或者同步去。
$.ajax({
url: "user/checkUserID.action",
async: false,
type: "post",
cache: false,
data: "userID="+userid_add,
success:function(msg){
if( msg == 1) {
$("#userid_add_warn").html("账号已存在,请重新输入!");
alert( "第一次"+$("#userid_add_warn").html());
}
if( $("#userid_add_warn").html() != ""){
return false; //写在这里面不行吗?
}
},
error:function(){alert("返回数据错误!")}
});
全写在回调函数里 才能正常操作,不然就把ajax设置成为同步
我最终要的是 check_add 为falseasync: false,
cache: false,
已经试过结果还是不行··
var userid_add = $("#userid_add").val();
var flag=true;
$.ajax({
url: "user/checkUserID.action",
type: "post",
data: "userID="+userid_add,
success:function(msg){
if( msg == 1) {
$("#userid_add_warn").html("账号已存在,请重新输入!");
alert( "第一次"+$("#userid_add_warn").html());
flag=false;
}
},
error:function(){alert("返回数据错误!")}
});
return flag;
}这样是否你想要的?
var userid_add = $("#userid_add").val();
var flag=true;
$.ajax({
url: "user/checkUserID.action",
type: "post",
data: "userID="+userid_add,
success:function(msg){
if( msg == 1) {
$("#userid_add_warn").html("账号已存在,请重新输入!");
alert( "第一次"+$("#userid_add_warn").html());
flag=false;
}
},
error:function(){alert("返回数据错误!")}
});
return flag;
}
$.ajax({
url: "user/checkUserID.action",
async: false,
type: "post",
cache: false,
data: "userID="+userid_add,
success:function(msg){
if( msg == 1) {
$("#userid_add_warn").html("账号已存在,请重新输入!");
alert( "第一次"+$("#userid_add_warn").html());
}
if( $("#userid_add_warn").html() != ""){
return false; //写在这里面不行吗?
}
},
error:function(){alert("返回数据错误!")}
}); alert("继续执行");
当 msg =1 , $("#userid_add_warn").html("账号已存在,请重新输入!") 执行
但 return false 没执行,
程序弹出 "继续执行" ,
check_add() 最终为 true.
要 alert(flat)一下;
alert(flag);
return flag;
不然flag还是true;
早些时候试过
return flag; 前要 alert(flag)一下,不然flag为true;
是
ajax没问题的·
可以了·