Условная валидация т.е. Требуется поле только в том случае, если установлен определенный переключатель?
Это скорее указание в правильном направлении. В настоящее время я работаю над проектом, в котором несколько полей будут скрыты до тех пор, пока не будет включена радиокнопка, поэтому до тех пор также не требуется. Поэтому отметьте переключатель, и поля появятся, и теперь они обязательны для отправки с атрибутом [Обязательный] DataAnnotations в модели.
Я пошел по пути, пытаясь использовать MVC Foolproof и [RequiredIf], но мне не очень повезло, учитывая необходимость устаревших js-файлов, и мне было интересно, есть ли у кого-то еще более простое решение.
Я ценю любой вклад. Я чувствую, что это не слишком редкая задача, но мне было трудно найти решение через Google.
2 ответа
Я уверен, что вы можете сделать это с помощью Javascript / Jquery.
Вот так:
if($('#idNameOfRadioBtn').is(':checked')){
$('#idOfFieldNameThatIsNowRequired').attr('required');
}
else{
$('#idOfFieldNameThatIsNowRequired').removeAttr('required');
}
Позвольте мне знать, если это помогает!
Я предлагаю вам использовать angularjs для этого, так как он создан для него. Если вы не знакомы с угловой проверкой, вот отличная статья на скотче, где она дает действительно хорошую демонстрацию. Удачи!
Скрыть и показать поля на основе директивы ng-if и сделать поле обязательным, используя обязательный атрибут. Это оно!
<input type="text"
name="name"
class="form-control"
ng-model="user.name"
ng-if="user.required"
required>