js中方法返回值获取不到!!!

Alvin____ 2015-08-22 03:44:12

//检查userid是否存在
function checkUserID(uid) {
$.ajax({
type: "post",
url: "../Handler/CheckUserID.ashx",
datatype: "text",
data: { uid: uid },
success: function (data) {
//alert(data);
return data;
}
});
}

上面定义了一个用来检查id是否存在的方法,返回值是bool

//失去焦点发送ajax请求验证uid
$("#txtUId").blur(function () {
var uid = $(this).val();
var tag = checkUserID(uid);
alert(checkUserID(uid));
if (tag == "False") { //不存在 可以使用
$("#txtUId").parents('.form-group').addClass("has-success");
$("#txtUId").parents('.form-group').removeClass("has-error");

} else { //已存在 不能使用
$("#txtUId").parents('.form-group').addClass("has-error");
$("#txtUId").parents('.form-group').removeClass("has-success");
}
});

这个失去焦点事件 alert(tag) 是undefined。
方法里面明明有返回值,实在想不通为什么获取不到。。。。
求高人指点!!!
...全文
1973 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
可能黑客 2015-08-22
  • 打赏
  • 举报
回复
有用就给点分,缺分了
可能黑客 2015-08-22
  • 打赏
  • 举报
回复
这样写是不行的!下面的方法你试试 //检查userid是否存在 function checkUserID(uid) { $.ajax({ type: "post", url: "../Handler/CheckUserID.ashx", datatype: "text", data: { uid: uid }, success: function (data) { showdata(data); } }); function showdata(data){ console.log(data) } } 或者是用下面的 //检查userid是否存在 function checkUserID(uid) { $.ajax({ type: "post", url: "../Handler/CheckUserID.ashx", datatype: "text", data: { uid: uid }, success: function (data) { topic.publish("name",data); } }); } 用的时候topic.subscribe("name",data) topic.subscribe/publish的用法你查查
天际的海浪 2015-08-22
  • 打赏
  • 举报
回复
1、这个返回值是ajax的success回调函数的返回值,不是checkUserID函数的返回值 2、ajax默认是异步加载数据的,程序不会等待数据加载完成再执行后面的语句,而是会先执行后面的语句,等数据加载完成再执行success回调函数 解决方法 1、把ajax改用同步模式 2、把ajax后面的语句都放到success回调函数中

87,976

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧