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

时间:2015-08-28 10:18:15

标签: jquery asp.net-mvc-3

我需要根据锚标记点击启用和禁用所需的字段验证。

这里我展示了一些例子

<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; }

1 个答案:

答案 0 :(得分:2)

您可以使用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>