问题描述
||
单击“保存”按钮时,我会动态添加验证规则-我这样做是为了输入文本和选择元素:
$(\“#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\')
这将删除表单的验证