我在 ASP.NET MVC 3 中使用 [Required]
属性进行客户端验证。
该类如下所示:
public class User
{
[Required(ErrorMessage = "First Name is required")]
public string FirstName { get; set; }
}
我希望字段 FirstName
仅在可见时才进行验证,该字段仅在某些条件下才会显示。我怎样才能做到这一点?
我已经使用了以下内容,但它仍然看起来可以验证该隐藏字段的必填字段。
$('#registerForm').validate({ ignore: ":not(:visible)" });
最佳答案
通过@Josiah 的一些有用提示,我能够满足我的要求。
添加RequiredIfAttribute类和所需的javascript。请参阅Conditional Validation in ASP.NET MVC 3
并在类中添加 RequiredIf
属性:
public class User
{
[RequiredIf("hFirstName", "true", ErrorMessage = "First Name is required")]
public string FirstName { get; set; }
在 aspx 中:
@Html.TextBoxFor(model => Model.FirstName, new { @style = "height:auto;" })
@Html.ValidationMessageFor(model => Model.FirstName)
@Html.Hidden("hFirstName")
如果 FirstName 字段隐藏,则将 hFirstName
的值设置为“true”,如果可见,则将值设置为“false”。
这些变化带来了神奇的效果。感谢@Josiah Ruddell 的answer
关于jquery - 仅当字段可见时才需要验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5731788/