user5264652
user5264652

Reputation:

How to enable and disable MVC Required Field validation

I need to enable and disable the required field validation based on anchor tag click.

Here I showed some example

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

Edit

That CustomText is my model property

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

Upvotes: 1

Views: 7195

Answers (1)

Karthikeyan P
Karthikeyan P

Reputation: 1267

You can use rules() like

If you want to add rules, rules('add',required);

If you want to remove rules, 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>

Upvotes: 4

Related Questions