Переключить проверку HTML / JQuery - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть приложение 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?

Спасибо за совет и помощь.

...