`
rainingcn
  • 浏览: 25610 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jquery.validate.remote 的一个bug

阅读更多

version :jQuery validation plug-in 1.7
remote bug的大致情况。以普通的登录流程为例


 
1.相关代码

$("#form").validate({
        rules: {
            loginId:"required" ,
            password:"required" ,
            code:{
                remote: {
                    url:  "/verification-code!check.action",     //后台处理程序
                    type: "post",               //数据发送方式
                    dataType: "json"                   
                }
            }
        },  ......
 


2.bug的形成情景
如果第一次登录失败,仍返回到login页面,系统会自动切换验证码。此时输入正确的验证码后,不用键盘的“tab”切换,直接点击【login】按钮,此时界面会闪一下,并不提交,再按一次才会提交。

3.分析
remote采用的是异步提交,也就是不管最后的结果是true 还是false,都有一定的响应延迟,但是程序程序早已经往下执行了。validation框架就认为verification code的验证结果为false。不提交。


4.解决
修改代码,将异步提交改成同步提交。比如:

$.ajax($.extend(true, {
					url: param,
					mode: "abort",
					port: "validate" + element.name,
					dataType: "json",
					data: data,
                    async: false,   

    //同步加载 不加会有bug



 

  • 大小: 26.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics