首页 新闻 会员 周边

AJAX验证中的异步问题

0
悬赏园豆:20 [已解决问题] 解决于 2008-10-09 14:30

主要我要实现这种效果

在验证的时候,许多项都用AJAX进行后台验证,验证完后判断如果都正确就提交。但是如果是异步的话,没有等验证完就提交了,我提交也是用的ajax提交的。
需要怎么来完成?
我不想写成
ws.fun1(function(result){
ws1.fun1(function(result){
ws3.fun1...
});
});
这样的方式。需要怎么弄呢?
上一个博问我问了AJAX能否实现同步调用,答案是不能。那么如何才能解决这个问题呢?

poplau的主页 poplau | 初学一级 | 园豆:59
提问于:2008-09-27 09:44
< >
分享
最佳答案
1

在发送AJAX验证以前,把提交的按钮disable掉,或者使用信号量来做同步处理

比如有n个AJAX验证需要提交,就先设一个值

var flag = 1;

每一次AJAX验证发送前执行 flag--;

AJAX验证完毕后(无论验证是不是通过,无论AJAX是否通信成功),执行 flag++;

当form提交的时候,判断flag > 0,如果为true表示AJAX验证都完成了

Gray Zhang | 专家六级 |园豆:17610 | 2008-09-27 09:48
其他回答(3)
1

你可以在验证完成时的回调函数里提交。将按钮的UseSubmitBehavior设为false;
在回调函数里__doPostBack("按钮id","")

Jeremy Liu | 园豆:705 (小虾三级) | 2008-09-27 10:03
-1

 根据楼主的所说做了一个简单的demo,基本思路:通过asp.net  ajax在客户端调用web service来实现异步验证,然后在回调函数中来判断是否提交表单(如果输入的数字>1000,视为验证通过,并提交,若<1000示为验证失败).

代码如下:

aspx代码: 

Code

aspx.cs代码: 

Code

 web service代码: 

Code

 

代码是经过的,实现楼主要求应该是可取的.

加冰的可乐 | 园豆:410 (菜鸟二级) | 2008-09-27 11:34
0

不懂,支持一下!

 

---------------------------
[img]http://www.domain120.com/images/logo.gif[/img]
[url=http://domain120.com]超好用域名搜索查询工具[/url]

tom385 | 园豆:210 (菜鸟二级) | 2008-09-27 15:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册