C#隐藏字段时无需验证

时间:2014-10-29 08:49:44

标签: c# jquery asp.net-mvc

以下代码应忽略类ignore

的所有验证字段

使用HTML帮助器我添加了类ignore,但每当我按下提交时它仍然需要验证,即使添加了类ignore

根据:jQuery disable rule validation on a single field 以下jQuery应禁用对类ignore的字段进行任何验证,但这不起作用。

的jQuery

function hideBel() {
    $('#BelBep').hide();
    $('#iqform').validate(
       { ignore: ".ignore, :hidden"
    })
};

create.cshtml

<fieldset id="iqform">
    <legend>Form</legend>
    <div class="editor-label">@Html.LabelFor(model => model.BevBeleid) @Html.ValidationMessageFor(model => model.BevBeleid)</div>
    <label>@Html.RadioButtonFor(model => model.BevBeleid, "true", new { onclick = "showBel();"}) Ja</label>
    <label>@Html.RadioButtonFor(model => model.BevBeleid, "false", new { onclick = "hideBel();" }) Nee</label>

    <div id="BelBep" style="display: none;">
        <div class="editor-label">@Html.LabelFor(model => model.BelLastName)</div>
        <div class="editor-field">
            @Html.EditorFor(model => model.BelLastName, new { htmlAttributes = new {@class = "ignore"}})
            @Html.ValidationMessageFor(model => model.BelLastName)
        </div>

    </fieldset>

1 个答案:

答案 0 :(得分:1)

要实现这种忽略行为,我们应该将所需的选择器添加到jQuery-validation-defaults 我们知道默认情况下:hidden,我们在这里添加.ignore CssClass选择器,如下所示。

此默认脚本应放在代码文件中的方式和位置。

  

我在 myview.cshtml 文件

中执行如下操作
<!--HTML and Razor markup -->
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")

    <script>
        //Below defaults setting should run 
        //after jquery.validation js execution and before DOM-Ready.
        //Note: This script block placement must be after below script embed tags
        //jquery.validate.min.js,jquery.validate.unobtrusive.min.js(=>jqueryval bundle)
        $.validator.setDefaults({
            ignore: ':hidden, .ignore'
        });
        $(function () {
            //Script to Run after DOM-Ready
        });
    </script>
}