好久没遇到人品级问题了,大家来看看这个弱智的问题,但是我就是解决不了
时间:2011-12-19
来源:互联网
JScript code
function reg() { var txtName = $("#<%=txtName.ClientID%>"); var lblName = $("#<%=lblName.ClientID%>"); if (txtName.val().length == 0) { //如果账号为空 lblName.text("×请输入用户名").css("color", "red"); return false; } else if (txtName.val().length < 6) { lblName.text("×用户名不能少于6位").css("color", "red"); return false; } else { $.ajax({ type: 'POST', //用POST方式传输 dataType: 'json', //数据格式:JSON url: 'checking.ashx', //目标地址 data: 'name=' + txtName.val(), //文本框里的用户名 //接收数据完毕 success: function (json) { if (json.verify == '0') { $("#<%=lblName.ClientID%>").text("√恭喜您用户名可以注册").css("color", "green"); alert('草泥马成功了'); return true; } else { $("#<%=lblName.ClientID%>").text("×用户已被注册").css("color", "red"); return false; } } }); } return false; }
问题是无论怎样, 这个方法都是返回false; 我执行到$("#<%=lblName.ClientID%>").text("√恭喜您用户名可以注册").css("color", "green"); 这狗日的还是给我返回false, js 大牛快来看看 , 100分属于你!!
作者: pengcong001 发布时间: 2011-12-19
你把最后一个花括号的前一行代码,也就是最后一行return false;
注释掉看下
作者: likevs 发布时间: 2011-12-19
{
alert(json.verify的值是多少?)
...
}
作者: bearlin081001 发布时间: 2011-12-19
$.ajax({ url:"selectFakeAction.action", async:false,//设置同步
作者: Return_false 发布时间: 2011-12-19
作者: longxun_chen 发布时间: 2011-12-19
如果 alert(json.verify) 看到的是 0 那么 if (json.verify+0 ==0)看看
作者: wangjicongqian 发布时间: 2011-12-19
if (json.verify == '0') {
$("#<%=lblName.ClientID%>").text("√恭喜您用户名可以注册").css("color", "green");
alert('草泥马成功了');
return true;
} else {
$("#<%=lblName.ClientID%>").text("×用户已被注册").css("color", "red");
return false;
}
}
error :function(josn){
alert(json)
}
______________________
如果后台返回的不是JSON格式的字符串,是走error指定的函数的。
作者: longxun_chen 发布时间: 2011-12-19
JScript code
$.ajax({
url:"selectFakeAction.action",
async:false,//设置同步
正确,ajax默认异步执行。虽然ajax提交了,但是先返回下面的false
作者: fangxinggood 发布时间: 2011-12-19
呵呵,你这是异步执行啊,你执行了function (json) 函数,返回return true;
但这个值并不属于function reg() 这个函数的
JQ里我不懂,但是在纯JS里的,
代码在执行到这一块时:
else {
$.ajax({
type: 'POST', //用POST方式传输
dataType: 'json', //数据格式:JSON
url: 'checking.ashx', //目标地址
data: 'name=' + txtName.val(), //文本框里的用户名
//接收数据完毕
success: function (json) {
if (json.verify == '0') {
$("#<%=lblName.ClientID%>").text("√恭喜您用户名可以注册").css("color", "green");
alert('草泥马成功了');
return true;
} else {
$("#<%=lblName.ClientID%>").text("×用户已被注册").css("color", "red");
return false;
}
}
});
}
//这时候工作进程会新开一条线程去处理这个请求,也就是异步的说法
而本身的主线程(也就是reg()函数),则不会等待异步,在分好新线程服务于异步请求后,将继续执行自己当前线程的后继代码
//这里补充一下,自由微软官方的异步回调机制有个参数可以指定是同步或者异步执行Ajax的,不过有点烦,这个机制服务处理只能有一个,不灵活,所以我喜欢自己写
作者: likevs 发布时间: 2011-12-19
或者像3楼说的设置同步,但是一般不建议这么做。
作者: codeingman 发布时间: 2011-12-19
success: function (json) {
if (json.verify == '0') {
$("#<%=lblName.ClientID%>").text("√恭喜您用户名可以注册").css("color", "green");
alert('草泥马成功了');
return true;
} else {
$("#<%=lblName.Clie……
后台返回是JSON ! 设置同步。。我试试
作者: pengcong001 发布时间: 2011-12-19
作者: ywdfei 发布时间: 2011-12-19
JScript code
$.ajax({
url:"selectFakeAction.action",
async:false,//设置同步
不行啊 ,设置了同步,虽然ajax方法返回true了, 但是reg()返回的还是false , 难道ajax返回的ture不属于reg() ????
作者: pengcong001 发布时间: 2011-12-19
两个方法解决
一是验证和执行分开
在ajax 成功的回调函数中调用执行方法
二是保持现有思路 用标记变量来区分
同样也是在 ajax 成功的回调函数中重新调用方法
作者: Sandy945 发布时间: 2011-12-19
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28