Pra*_*sad 22 jquery requiredfieldvalidator jquery-validate client-side-validation asp.net-mvc-3
我[Required]在ASP.NET MVC 3中使用该属性进行客户端验证.
该课程看起来像:
public class User
{
[Required(ErrorMessage = "First Name is required")]
public string FirstName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我希望FirstName只有在可见的情况下才能验证该字段,该字段仅在某些条件下显示.我怎样才能做到这一点?
我使用了以下内容,但它仍然希望验证该隐藏字段的必填字段.
$('#registerForm').validate({ ignore: ":not(:visible)" });
Run Code Online (Sandbox Code Playgroud)
Pra*_*sad 14
通过@Josiah的一些有用提示,我能够达到我的要求.
添加RequiredIfAttribute类和所需的javascript.请参阅ASP.NET MVC 3中的条件验证
并在类中添加RequiredIf属性:
public class User
{
[RequiredIf("hFirstName", "true", ErrorMessage = "First Name is required")]
public string FirstName { get; set; }
Run Code Online (Sandbox Code Playgroud)
在aspx中:
@Html.TextBoxFor(model => Model.FirstName, new { @style = "height:auto;" })
@Html.ValidationMessageFor(model => Model.FirstName)
@Html.Hidden("hFirstName")
Run Code Online (Sandbox Code Playgroud)
hFirstName如果隐藏了FirstName字段,则将值设置为"true",如果可见,则设置为"false".
魔术适用于这些变化.感谢@Josiah Ruddell的回答
我会创建一个有条件的必需属性.有创建一个与jQuery验证的好文章在这里.
另一种选择:您可以引用提供此功能和客户端脚本的项目,如Foolproof validation(codeplex).
此外,您可以使用ajax加载部分视图,以便在隐藏时它们永远不会出现在页面上.这将完全避免条件验证.
| 归档时间: |
|
| 查看次数: |
19048 次 |
| 最近记录: |