У меня есть приложение MVC.Мне нужно переключить проверку ввода по значению модели.Если установлен флажок, поле E-Mail должно быть обязательным с моим собственным сообщением проверки, в противном случае - нет.
Ввод:
<input type="checkbox"
name="@Html.NameFor(a=> a.CreatePersonAsUser)"
id="@Html.IdFor(a=> a.CreatePersonAsUser)"
value="@Html.ValueFor(a=>a.CreatePersonAsUser)"
onchange="createUserRightChange(this)" />
<script type="text/javascript">
function createUserRightChange(cbx) {
var isChecked = $(cbx).is(':checked');
var emailElement = $('#@Html.IdFor(a => a.Email)');
if (isChecked) {
emailElement.attr('required', 'required');
emailElement.on('oninput', $(emailElement)[0].setCustomValidity(''));
emailElement.on('oninvalid', $(emailElement)[0].setCustomValidity('My validation message'));
} else {
emailElement.removeAttr('required');
emailElement.off('oninput');
emailElement.off('oninvalid');
}
}
$(document).ready(function () {
createUserRightChange($('#@Html.IdFor(a => a.CreatePersonAsUser)'));
});
</script>
В начале флажок снят.Когда я проверяю флажок поле проверки работает хорошо.Когда я передумал и снял флажок, проверка все еще работает.
Я не знаю, как изменить проверку.
Конечно, я проверяю модель на сайте сервера, но я хочу сделать правильную проверку на сайте клиента.
Можно ли отключить проверку клиента с помощью Javascript или JQuery?
Спасибо за совет и помощь.