您好我正在使用jquery验证来验证我的aspx页面。设置
隐藏deliveryToDiv
document.getElementById("deliveryToDiv").style.display = "none";
此div具有其他控件,将根据此div的可见性进行验证。
但设置ignore:"hidden"
似乎不适用于此div。即使此div不可见,也会抛出错误消息。如何检测此div是否可见并执行验证?
解决方法是什么?请指教。提前谢谢你
答案 0 :(得分:1)
ignore
选项采用选择器,:hidden选择器以冒号字符开头。
因此,你应该写:
ignore: ":hidden"
而不是:
ignore: "hidden"
后者匹配<hidden>
元素而不是不可见的元素。
答案 1 :(得分:0)
How can I detect if this div is visible and perform validation?
要做到这一点你可以这样说:
if($('#deliveryToDiv').is(':visible')){
// do the validation here
}else{
// do the other stuff if not visible
}
答案 2 :(得分:0)
:hidden
适用于<input type="hidden">
。因此,如果您禁用div中的所有字段,它可能会有所帮助。验证应跳过禁用的字段。
答案 3 :(得分:-1)
可能的原因可能是ignore: ':hidden'
中有jquery.validate.unobtrusive.js file
行。只需删除该行。
在1.9.0版本之后,它是默认行为。如果文件中不存在该行(我不确定),您可以通过添加
手动修复该行 $.validator.setDefaults({ ignore: [] });
正如你在这里看到的那样
另一个更改应该使隐藏元素的表单设置更容易,默认情况下现在会忽略它们(选项“ignore”现在默认为“:hidden”)。从理论上讲,这可能会打破现有的设置。在实际情况不太可能的情况下,您可以通过将ignore-option设置为“[]”(方括号而不带引号)来修复它。