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