切换HTML / JQuery验证

时间:2018-11-20 11:35:14

标签: javascript jquery asp.net-mvc html-validation

我有一个MVC应用程序。我需要根据模型值切换输入验证。 选中“是”复选框时,必须使用我自己的验证消息来填写“电子邮件”字段,否则不需要。

输入:

<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关闭客户端验证?

感谢您的建议和帮助。

0 个答案:

没有答案