问题描述
我使用的ASP.NET MVC 3。
客户端验证 [必需]
属性类看起来:
公共类用户
{
[必需(的ErrorMessage =名要求)]
公共字符串名字{获得;组; }
}
我要的字段姓
,只有当它是可见的,这将显示只在某些特定条件下进行验证。我该怎么做?
我用以下,但它仍然看起来,以验证该隐藏字段的必填字段。
$('#registerForm')验证({忽略:不(:可见)});
从@Josiah一些有用的提示,我能够得到我的要求。
添加RequiredIfAttribute类和所需的JavaScript。请参阅Conditional验证在ASP.NET MVC 3
和在类中添加 RequiredIf
属性为:
公共类用户
{
[RequiredIf(hFirstName,真,的ErrorMessage =第一名称是必需)]
公共字符串名字{获得;组; }
在ASPX:
@ Html.TextBoxFor(型号=> Model.FirstName,新{@style =高度:自动;})
@ Html.ValidationMessageFor(型号=> Model.FirstName)
@ Html.Hidden(hFirstName)
设置 hFirstName
的价值为true,如果名字字段是隐藏的假,如果可见。
神品这些变化。感谢@Josiah Ruddell他的answer
I am using the [Required]
attribute for the client-side validation in ASP.NET MVC 3.
The class looks as:
public class User
{
[Required(ErrorMessage = "First Name is required")]
public string FirstName { get; set; }
}
I want the field FirstName
to be validated only if it's visible, which will be shown only on certain conditions. How can I do that?
I have used the following, but still it looks to validate for the required field of that hidden field.
$('#registerForm').validate({ ignore: ":not(:visible)" });
With some useful hints from @Josiah, i am able to get to my requirement.
Add the RequiredIfAttribute class and the required javascript. Refer Conditional Validation in ASP.NET MVC 3
And in the class add the RequiredIf
attribute as:
public class User
{
[RequiredIf("hFirstName", "true", ErrorMessage = "First Name is required")]
public string FirstName { get; set; }
and in aspx:
@Html.TextBoxFor(model => Model.FirstName, new { @style = "height:auto;" })
@Html.ValidationMessageFor(model => Model.FirstName)
@Html.Hidden("hFirstName")
Set the value of hFirstName
to 'true' if the FirstName field is hidden and 'false', if visible.
The magic works with these changes. Thanks to @Josiah Ruddell for his answer
这篇关于需要验证只有在现场可见的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!