jQuery validate:删除规则对于select元素后,验证仍会触发

问题描述

|| 单击“保存”按钮时,我会动态添加验证规则-我这样做是为了输入文本和选择元素:   $(\“#my-txt \”)。rules(\“ add \”,{必填:   true,消息:{必填:\“文本   必需\“}});      $(\“#my-ddl \”)。rules(\“ add \”,{必填:   正确,消息:{必填:\“选择   必需\“}}); 添加规则后,我将手动触发验证(
.valid()
),然后通过对元素执行
.rules(\"remove\")
删除规则。我这样做是因为我希望错误一直存在,直到用户再次单击“保存”并重新触发验证为止。 这可以正常工作,并且错误可以正确显示...但是...但是无论如何,文本输入的错误仍然存​​在,当我单击下拉列表时,相关错误消失了(我可以看到显示:没有注入包含错误的跨度中),与任何选择无关(单击控件后它就会消失,而不是在我关闭选项卡时消失)。我希望下拉菜单错误不会被隐藏,与文本输入字段相同。 不过,该规则实际上似乎已经消失了,因为如果我返回并在select元素上选择认值(value = \“ \”),它不会显示错误消息。 这一直困扰着我-我正试图找到一种方法来使两个领域以相同的方式运作。 任何帮助表示赞赏!     

解决方法

        再次查看jquery-validate API之后,我看到没有选项可以保持显示错误,并且在显示内容上的区别必须在插件代码中。修复它的好运。 :) 解决此问题的另一种方法是手动将jquery-validate添加到您的DOM中,将其删除并自己重新添加。 最后,我希望查看我的输入何时有效,而无需重新单击某些按钮。尤其是在奇怪,复杂的密码要求的情况下。     ,        除了通过jquery.validation函数删除此必需项之外,您还可以从元素中删除类“必需”。通过这样做,jquery.validation将跳过该元素,因为它没有附加必需的类。     ,        呼叫
$(\'#formid\').removeData(\'validator\')
这将删除表单的验证