最近遇到一个问题。
注册的时候,我们网站是用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事件。