Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Asp.net-MVC中特定隐藏字段的客户端验证_Javascript_Jquery_Asp.net Mvc - Fatal编程技术网

Javascript Asp.net-MVC中特定隐藏字段的客户端验证

Javascript Asp.net-MVC中特定隐藏字段的客户端验证,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我使用数据注释进行验证,也使用unobtrusive.js进行客户端验证 根据jquery.validate.js的默认设置(忽略:“:hidden”),我有几个默认未验证的隐藏字段(我不需要) 在我的例子中,我只想验证一个特定的隐藏字段,而不是我无法覆盖的所有字段 ***ignore: ":hidden"*** to ***ignore:[]***. 如果它被更改,那么所有隐藏字段都将被考虑进行验证,这不是我的要求 不知道如何为特定隐藏字段启用验证

我使用数据注释进行验证,也使用unobtrusive.js进行客户端验证

根据jquery.validate.js的默认设置(忽略:“:hidden”),我有几个默认未验证的隐藏字段(我不需要)

在我的例子中,我只想验证一个特定的隐藏字段,而不是我无法覆盖的所有字段

                   ***ignore: ":hidden"*** to  ***ignore:[]***.
如果它被更改,那么所有隐藏字段都将被考虑进行验证,这不是我的要求

不知道如何为特定隐藏字段启用验证

 [ValidDate(ErrorMessage = "This is not a valid date.Please enter date in dd/mm/yyyy format.")]
 public string HiddenSelectedDob { get; set; }
其中,
ValidDate
是一个自定义属性

在这里,我从三个不同的下拉列表中获取用户对日期、月份和年份的输入,对于每个下拉列表的更改事件,
hiddenselectedob
的值将使用jQuery设置

最后,提交时,应验证此隐藏文件

我给那个隐藏的文件起了一个类名,比如

@Html.HiddenFor(m => m.HiddenSelectedDob, new { @class = "validateAlways" })
并覆盖jquery.validate.js的默认设置,如

$.validator.setDefaults({ ignore: ":hidden:not(.validateAlways)" });

但结果是一样的。字段未验证。

我看到的唯一方法是向要验证的隐藏输入添加一个类

因此,您必须在视图级别执行此操作

@Html.HiddenFor(x => x.HiddenSelectedDob, new{@class="validateAlways"})
然后,将validate.js的忽略规则更改为

ignore: ':hidden:not('.validateAlways')'

这意味着:忽略所有隐藏的输入,除非它们有一个
validateAlways
类。

好吧,我看到的唯一方法是向要验证的隐藏输入添加一个类

因此,您必须在视图级别执行此操作

@Html.HiddenFor(x => x.HiddenSelectedDob, new{@class="validateAlways"})
然后,将validate.js的忽略规则更改为

ignore: ':hidden:not('.validateAlways')'

这意味着:忽略所有隐藏的输入,除非它们有一个
validateAlways
类。

如果您正确验证了组成部分的字段,那么隐藏的dob是否不总是有效?实际上,需要对组合进行验证,如2016年2月31日不是有效日期,但单个字段如31,02和2016是有效的。您应该加强加载下拉列表的方式,绝不允许在下拉列表中出现无效条目,这就是下拉列表的要点。如果您正确验证了组成零件的字段,那么隐藏的dob是否始终有效?实际上,需要对组合进行验证,如2016年2月31日不是有效日期,但单独的字段如31、02和2016是有效的。您应该收紧加载下拉列表的方式,你不应该允许在下拉列表中出现无效条目,这就是下拉列表的要点。谢谢!!但它不起作用。重写类似于“$.validator.setDefaults({ignore:::hidden:not(.validateAlways)}”);”需要引用类名-
$.validator.setDefaults({ignore:':hidden:not('.validateAlways'))})(然后它就可以正常工作了)。您还可以使用
id
-':hidden:not(“#hiddenselectedob”)'谢谢!!但它不起作用。重写类似于“$.validator.setDefaults({ignore:::hidden:not(.validateAlways)}”);”需要引用类名-
$.validator.setDefaults({ignore:':hidden:not('.validateAlways'))})(然后它就可以正常工作了)。您还可以使用
id
-':hidden:not(“#hiddenselectedob”)`