发现bug:

jquery.validate无法清除同表单的上次验证结果,如下:
在这里插入图片描述

分析bug:

查阅官方文档之后,观察validate的返回类型,可以发现validate 方法返回一个 Validator 对象。

名称返回类型描述
validate(options)Validator验证所选的Form

Validator 对象有很多方法可以用来引发校验程序或者改变 form 的内容,下面列出几个常用的方法。

名称返回类型描述
form()Boolean验证form返回成功还是失败
element(element)Boolean验证单个元素是成功还是失败
resetForm()undefined把前面验证的Form恢复到验证前的状态
showErrors(errors)undefined显示特定的错误信息

我们可以利用上面的resetForm()函数清空上次表单的验证结果

解决bug:

var validate='';
  function vform(dom,func) {
            validate=$('#'+dom).validate({
               rules: {
                   snoAllocation: {
                       required: true
                   },
                   statusAllocation1:{
                       equalTo:'#statusAllocation'
                   },
                   "dormInfo.id":{
                       required:true
                   }
               },
               messages:{
                    snoAllocation:{
                       required:'请选择要分配的学生'
                   },
                   statusAllocation1:{
                        equalTo:'该宿舍已住满'
                   },
                   "dormInfo.id":{
                        required:'请选择院系'
                   }
               },
               submitHandler:function () {
                   func();
               }
            });
            //下面这句代码加在你代码合适的地方,不一定非要放在这里
           validate.resetForm();
        }
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐