jquery.validate清除表单的验证结果

发现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();
        }
posted @ 2021-01-22 20:24  别团等shy哥发育  阅读(78)  评论(0)    收藏  举报