$.ajax 赋值问题

[code="java"]function getName() {
var name = $("#dpt_name").val();
var dpt_id = $("#dpt_id").val();
var x=0;
$.ajax({url:"setDept.do?method=checkName", type:"POST", data:{name:name, dpt_id:dpt_id, type:1}, cache:false, dataType:"html", success:function (data) {
$("#tip1").html(data);
if (data != "\u53ef\u4ee5\u4fee\u6539") {
x = 0;
} else {
x=1;
//dept.submit();
}
}});

alert(x);

}[/code]
为什么x的值一直都是0,在里面赋值一直无效?
该怎么赋值?

2个回答

这里发的是异步请求,执行 alert(x) 时请求还未返回,自然就是 0 了;
若要发同步请求,加个参数 async:false
[code="html"]function getName() {
var name = $("#dpt_name").val();
var dpt_id = $("#dpt_id").val();
var x=0;
$.ajax({
async: false, // 设为同步请求
url:"setDept.do?method=checkName",
type:"POST",
data:{
name:name,
dpt_id:dpt_id,
type:1
},
cache:false,
dataType:"html",
success:function (data) {
$("#tip1").html(data);
if (data != "\u53ef\u4ee5\u4fee\u6539") {
x = 0;
} else {
x=1;
//dept.submit();
}
}
});
alert(x);
}[/code]

顶楼上的这个大侠的,前几天我也遇见这个问题,确实是异步的问题,改为同步就行了

立即提问
相关内容推荐