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



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值