1

Это скорее указание в правильном направлении. В настоящее время я работаю над проектом, в котором несколько полей будут скрыты до тех пор, пока не будет отмечен переключатель, поэтому также не требуется до тех пор. Поэтому отметьте определенный переключатель, появятся поля, и теперь они должны быть отправлены с атрибутом [Обязательный] DataAnnotations в модели.Условная проверка, т.е. Требуется ли поле, только если установлен определенный переключатель?

Я пошел по пути использования MVC Foolproof и [RequiredIf], но не имел большой удачи, учитывая устаревшие файлы js, и задавался вопросом, было ли у кого-то более простое решение.

Я ценю любой вход. Я чувствую, что это не слишком необычно, но с большим трудом находить решение через Google.

+0

Неверный 'RequiredIf' работает отлично (и его не устарел). Какие проблемы у вас были. Решение javascript в принятом ответе - это всего лишь плохой взлом и означает, что у вас будут проблемы с проверкой на стороне сервера. –

ответ

2

Я уверен, что вы можете сделать это с помощью Javascript/Jquery.

Как так:

if($('#idNameOfRadioBtn').is(':checked')){ 
    $('#idOfFieldNameThatIsNowRequired').attr('required'); 
} 
else{ 
    $('#idOfFieldNameThatIsNowRequired').removeAttr('required'); 
} 

Позвольте мне знать, если это помогает!

+0

Значит, у меня есть стандартные обязательные поля, проверенные в модели, и динамические обязательные поля из галочки, сделанной в jquery? В отдельности? – justiceorjustus

+0

@justiceorjustus это должно сработать таким образом. Сначала jquery проверит необходимые поля, и если он пройдет, то он перейдет к вашему контроллеру, и тогда он пройдет проверку. –

+0

@justiceorjustus это помогло? –

1

Я предлагаю вам использовать angularjs для этого, поскольку он построен для него. Если вы не знакомы с угловой проверкой, вот отличная статья в скотч, где она дает действительно хорошую демонстрацию. Удачи!

Скрыть и показать поля на основе нг-если директивы и сделать поле, необходимое, используя необходимый атрибут. Это оно!

<input type="text" 
     name="name" 
     class="form-control" 
     ng-model="user.name" 
     ng-if="user.required" 
     required> 

Angular Validation