//检查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。
方法里面明明有返回值,实在想不通为什么获取不到。。。。
求高人指点!!!
3 个解决方案
#1
1、这个返回值是ajax的success回调函数的返回值,不是checkUserID函数的返回值
2、ajax默认是异步加载数据的,程序不会等待数据加载完成再执行后面的语句,而是会先执行后面的语句,等数据加载完成再执行success回调函数
解决方法
1、把ajax改用同步模式
2、把ajax后面的语句都放到success回调函数中
2、ajax默认是异步加载数据的,程序不会等待数据加载完成再执行后面的语句,而是会先执行后面的语句,等数据加载完成再执行success回调函数
解决方法
1、把ajax改用同步模式
2、把ajax后面的语句都放到success回调函数中
#2
这样写是不行的!下面的方法你试试
//检查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的用法你查查
//检查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的用法你查查
#3
有用就给点分,缺分了
#1
1、这个返回值是ajax的success回调函数的返回值,不是checkUserID函数的返回值
2、ajax默认是异步加载数据的,程序不会等待数据加载完成再执行后面的语句,而是会先执行后面的语句,等数据加载完成再执行success回调函数
解决方法
1、把ajax改用同步模式
2、把ajax后面的语句都放到success回调函数中
2、ajax默认是异步加载数据的,程序不会等待数据加载完成再执行后面的语句,而是会先执行后面的语句,等数据加载完成再执行success回调函数
解决方法
1、把ajax改用同步模式
2、把ajax后面的语句都放到success回调函数中
#2
这样写是不行的!下面的方法你试试
//检查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的用法你查查
//检查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的用法你查查
#3
有用就给点分,缺分了