Условная валидация т.е. Требуется поле только в том случае, если установлен определенный переключатель?

Это скорее указание в правильном направлении. В настоящее время я работаю над проектом, в котором несколько полей будут скрыты до тех пор, пока не будет включена радиокнопка, поэтому до тех пор также не требуется. Поэтому отметьте переключатель, и поля появятся, и теперь они обязательны для отправки с атрибутом [Обязательный] 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>

Угловая проверка

Другие вопросы по тегам