<form>
<label>邮箱:</label><input type="text" value="" id="email" />
<label>手机:</label><input type="text" value="" id="tel" />
<input type="submit" value="注册" />
</form>邮箱和手机都需要ajax 从后台返回值flag,用以判断是否已经被注册,如果已被注册则不能提交表单!用的是query ajax
问题:
直接点击“注册“按钮的时候,需要重新验证一下所有输入框,所有flag都为true的时候执行submit
但由于ajax用的是async:true 异步传输,返回flag的success函数要等到submit之后才会执行,
所以提交时flag每次都取不到值
虽然可以设置async:false 同步传输,但是同步传输在success没执行前,后面的JS就执行不了,有弊端!
求解决办法或是新的判断思路,THX
var form = this.form; $.ajax({
success: function(flag){
if(flag) form.submit();
//else do something
}
}); return false;
});
这样行么
如果把submit函数写在 success中 会有一个情况就是:
当最后一输入框onblur时 所有的flag都为true了 这时表单就自动提交了 不需要点击“提交”按钮
BUG啊 如果把submit函数放到success里 就会这样 因为input的onblur会调用success的