如何启用和禁用 MVC 必填字段验证

How to enable and disable MVC Required Field validation

我需要启用和禁用基于锚标记点击的必填字段验证。

这里我展示了一些例子

<div class="row">
        <div class="col1">
            @Html.DisplayNameFor(m => m.CustomText)
        </div>
        <div class="col2">
            @Html.TextAreaFor(m => m.CustomText)
            @Html.ValidationMessageFor(m => m.CustomText, null, new { @style = "color:red" })
        </div>
        <a href="javascript:void(0)" onclick="SelectOn();" class="button">ON</a>
        <a href="javascript:void(0)" onclick="SelectOff();" class="button">OFF</a>
</div>
<script type="text/javascript">
        $(document).ready(function () {
            var modVal = '@Modle.IsEnabled';
            if (modVal = 'false') {
                //Need to disable
            }
        });

        function SelectOn() {
            //Need to enable
        }

        function SelectOff() {
            //Need to disable
        }
</script>

编辑

CustomText 是我的模型 属性

[Required]
[Display(Name = "Custom Text")]
public string CustomText { get; set; }

你可以rules()喜欢

如果要添加规则,rules('add',required);

如果要删除规则,rules('remove','required');

<div class="row">
    <div class="col1">
        @Html.DisplayNameFor(m => m.CustomText)
    </div>
    <div class="col2">
        @Html.TextAreaFor(m => m.CustomText)
        @Html.ValidationMessageFor(m => m.CustomText, null, new { @style = "color:red" })
    </div>
    <a href="javascript:void(0)" onclick="SelectOn();" class="button">ON</a>
    <a href="javascript:void(0)" onclick="SelectOff();" class="button">OFF</a>
</div>
<script type="text/javascript">
    $(document).ready(function () {
        var modVal = '@Modle.IsEnabled';
        if (modVal = 'false') {
            //Need to disable
            $('#CustomText').rules('remove');
            $('#CustomText-error').text('');
        }
    });

    function SelectOn() {
        //Need to enable
        $("#CustomText").rules("add", 'required');
    }

    function SelectOff() {
        //Need to disable
        $('#CustomText').rules('remove');
        $('#CustomText-error').text('');
    }
</script>