Ana*_*adi 1 javascript asp.net-mvc jquery
我正在使用数据注释进行验证,并使用unobtrusive.js进行客户端验证.
根据jquery.validate.js的默认设置(忽略:":hidden"),默认情况下,我有几个未经验证(我不需要)的隐藏字段.
在我的情况下,我只想验证一个特定的隐藏字段而不是全部因为我无法覆盖
***ignore: ":hidden"*** to ***ignore:[]***.
Run Code Online (Sandbox Code Playgroud)
如果它被更改,那么将考虑所有隐藏字段进行验证,这不是我的要求.
不知道如何为特定的隐藏字段启用验证.
[ValidDate(ErrorMessage = "This is not a valid date.Please enter date in dd/mm/yyyy format.")]
public string HiddenSelectedDob { get; set; }
Run Code Online (Sandbox Code Playgroud)
ValidDate自定义属性在哪里.
在这里,我从三个不同的下拉列表中获取用户对日,月和年的输入,并且对于每个下拉列表的更改事件,HiddenSelectedDob将使用jQuery设置值.
最后提交这个隐藏的文件应该是验证.
我已经为那个隐藏的文件提供了一个类名...
@Html.HiddenFor(m => m.HiddenSelectedDob, new { @class = "validateAlways" })
Run Code Online (Sandbox Code Playgroud)
并覆盖jquery.validate.js的默认设置
$.validator.setDefaults({ ignore: ":hidden:not(.validateAlways)" });
Run Code Online (Sandbox Code Playgroud)
但结果是一样的.该字段未验证.
好吧,我看到的唯一方法是将一个类添加到您想要验证的隐藏输入中.
所以你必须在视图级别这样做.
@Html.HiddenFor(x => x.HiddenSelectedDob, new{@class="validateAlways"})
Run Code Online (Sandbox Code Playgroud)
然后,将validate.js的忽略规则更改为
ignore: ':hidden:not('.validateAlways')'
Run Code Online (Sandbox Code Playgroud)
这意味着:忽略所有隐藏的输入,除非他们有一个validateAlways类.
| 归档时间: |
|
| 查看次数: |
893 次 |
| 最近记录: |