i think you are looking for conditional validation. various post for this:-
Model Validation / ASP.NET MVC 3 - Conditional Required Attribute
http://blogs.msdn.com/b/simonince/archive/2011/02/04/conditional-validation-in-asp-net-mvc-3.aspx
http://www.codeproject.com/Articles/541244/Conditional-ASP-NET-MVC-Validation-using-Data-Anno
Client side validation
If you are using jqueryvalidation.js by default it skips validation for hidden and display none element and if you want ignore validation for specific inputs you can do it by:-
$("#form1").validate({
ignore: "input[type='text']:hidden",
rules: {
something: {
number:true,
min:1,
required:true
}
}
});