首页 > 解决方案 > 切换 HTML/JQuery 验证

问题描述

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

感谢您的建议和帮助。

标签: javascriptjqueryasp.net-mvchtml-validation

解决方案


推荐阅读