解决(特殊情况下)两个ajax事件同时请求时web只会请求一次。

最近遇到一个问题。

注册的时候,我们网站是用jquery UI 做前端验证。

然后用jQuery post 提交。

这里在特殊情况下就产生了两个ajax事件。

特殊情况是这样的:当你光标放在一个input  text 里的时候,鼠标移开后会执行jQuery Ui里面的ajax 也是就是:

[code]
<input type="text" name="strEmail" id="strEmail" style="ime-mode:disabled;" value="" maxlength="30" url="__APP__/User/isValidUsername"
require="true" datatype="email|ajax" msg="Input a valid Email Address | This email has already registered an account." />
[/code]

然后,你光标没有移出这个input的时候点击了提交按钮。

提交按钮绑定了另外一个ajax事件,是用来提交数据实现登录的。

当你点击的时候,其实web浏览器只能获取到一个事件(我理解的。)就是blur事件。

而忽略了你点击这个按钮的点击事件click

于是我做了下面改动:

[code]
$("input[name=btnSubmit]").mousedown(function(){
setTimeout("submitForm()",100);
});
[/code]

从而解决了这个有点坑的问题!

这里延时100毫秒,是让blur事件先执行。如果不延时的话会先执行click事件。