主要我要实现这种效果
在验证的时候,许多项都用AJAX进行后台验证,验证完后判断如果都正确就提交。但是如果是异步的话,没有等验证完就提交了,我提交也是用的ajax提交的。
需要怎么来完成?
我不想写成
ws.fun1(function(result){
ws1.fun1(function(result){
ws3.fun1...
});
});
这样的方式。需要怎么弄呢?
上一个博问我问了AJAX能否实现同步调用,答案是不能。那么如何才能解决这个问题呢?
在发送AJAX验证以前,把提交的按钮disable掉,或者使用信号量来做同步处理
比如有n个AJAX验证需要提交,就先设一个值
var flag = 1;
每一次AJAX验证发送前执行 flag--;
AJAX验证完毕后(无论验证是不是通过,无论AJAX是否通信成功),执行 flag++;
当form提交的时候,判断flag > 0,如果为true表示AJAX验证都完成了
你可以在验证完成时的回调函数里提交。将按钮的UseSubmitBehavior设为false;
在回调函数里__doPostBack("按钮id","")
根据楼主的所说做了一个简单的demo,基本思路:通过asp.net ajax在客户端调用web service来实现异步验证,然后在回调函数中来判断是否提交表单(如果输入的数字>1000,视为验证通过,并提交,若<1000示为验证失败).
代码如下:
aspx代码:
Code
aspx.cs代码:
Code
web service代码:
Code
代码是经过的,实现楼主要求应该是可取的.
不懂,支持一下!
---------------------------
[img]http://www.domain120.com/images/logo.gif[/img]
[url=http://domain120.com]超好用域名搜索查询工具[/url]