首页 新闻 会员 周边

急!!ajax验证用户名和密码是否正确问题?

0
悬赏园豆:40 [已解决问题] 解决于 2010-12-09 17:58

//我做的一个用户登陆,用ajax实现验证用户的账号和密码的,现在验证的功能已经实现了,但是当用户输入正确的账号和密码的时候,我要点两次才能登陆成功,点第一次弹出“用户名或密码错误”,点第二次就能成功!
//请教高手这是什么原因,代码如下?
//怎么解决?


1 var loginreslut;
2 //验证用户名或密码是否为空
3   function CheckIsNull() {
4 var uName = document.getElementById('<%=txtLoginUser.ClientID%>').value;
5 var uPwd = document.getElementById('<%=txtLoginPwd.ClientID%>').value;
6 if (uName != "" && uPwd != "") {
7 return true;
8 }
9 else {
10 return false;
11 }
12 }
1 <asp:ScriptManagerProxy ID="smpLogin" runat="server">
2 <Services>
3 <asp:ServiceReference Path="~/ClientHandle/AjaxWeb.asmx" />
4 </Services>
5 </asp:ScriptManagerProxy>
6  <asp:LinkButton ID="lbtnLogin" runat="server" OnClientClick="if(!CheckReslut()) return false;" onclick="lbtnLogin_Click">登陆账户</asp:LinkButton>

 


13
14 //向服务器发送验证用户名和密码请求
15   function CheckLogin() {
16 var uName = document.getElementById('<%=txtLoginUser.ClientID%>').value;
17 var uPwd = document.getElementById('<%=txtLoginPwd.ClientID%>').value;
18 //GetLoginResult是WebService中的方法,验证用户和密码是否正确,返回bool类型
19   WebGame.ClientHandle.AjaxWeb.GetLoginResult(uName, uPwd, CheckLoginResult);
20 }
21
22 //接受服务器返回的验证结果
23 function CheckLoginResult(r) {
24 if (r) {
25 loginreslut = true;
26 }
27 else {
28 loginreslut = false;
29 }
30 }
31
32 //验证所有验证是否通过
33 function CheckReslut() {
34 if (CheckIsNull()) {
35 //调用向服务器发送请求的函数
36 CheckLogin();
37 if (loginreslut == true) {
38 return true;
39 }
40 else {
41 alert("用户名或密码错误");
42 return false;
43 }
44 }
45 else {
46 alert("用户名或密码不能为空");
47 return false;
48 }
49 }
50

 

问题补充: 中间那段aspx页面的代码插入错了!请见谅!
南城的主页 南城 | 初学一级 | 园豆:30
提问于:2010-12-08 16:54
< >
分享
最佳答案
0

AJAX是分为同步和异步的(你用的很显然是异步的)   CheckReslut()这个方法有点拖了裤子放屁的感觉(原谅我的粗俗)

当你在这个方法里面执行 CheckLogin()之后程序是不会等待的

这个时候做这个判断显然不合理 if (loginreslut == true

CheckLoginResult() 在这个方法里面就可以判断用户是否登录成功了不是吗?

如果你坚持要这样写 那就把Ajax写成同步的

收获园豆:40
写代码的小2B | 老鸟四级 |园豆:4371 | 2010-12-08 17:08
我用的ScriptManagerProxy这个控件,怎么改成同步啊?
南城 | 园豆:30 (初学一级) | 2010-12-08 17:13
嘿嘿 没有用过 - -
写代码的小2B | 园豆:4371 (老鸟四级) | 2010-12-08 17:15
其他回答(3)
0

貌似还没说出来什么问题。。。

顾晓北 | 园豆:10844 (专家六级) | 2010-12-08 16:59
就是输入正确的用户名和账号,点登陆按钮要点两次才能登陆成功,点第一次要弹出“用户名或密码错误”,点第二次才能登陆成功!账号和密码正确的情况下! http://topic.csdn.net/u/20101208/16/738c0a56-8b1c-4027-a1ad-1b3cf0eb252f.html?seed=1765327621&r=70451657#r_70451657 请看下这里,我在csdn发的帖子!
支持(0) 反对(0) 南城 | 园豆:30 (初学一级) | 2010-12-08 17:04
你的页面回发了没有?
支持(0) 反对(0) 顾晓北 | 园豆:10844 (专家六级) | 2010-12-08 17:51
0

建议用fiddler看下服务器返回的响应内容

vento | 园豆:237 (菜鸟二级) | 2010-12-08 17:19
0

登陆成功,返回刷新这个页面。

Astar | 园豆:40805 (高人七级) | 2010-12-09 14:16
是在同一个页面,两个panel
支持(0) 反对(0) 南城 | 园豆:30 (初学一级) | 2010-12-09 17:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册