2014-10-29 105 views
0

下面的代码应忽略与类ignoreC#没有验证时隐藏字段

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

要做到这一点忽略行为,我们应该选择需要添加的jQuery验证 - 默认值。
因为我们知道: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> 
} 
+0

嗯,我该更换$( '#iqform')。验证? 或者我将其添加到我的功能,或者做一个单独的功能。请延长一下! – SNT 2014-10-29 09:34:45

+0

我尝试将它添加到该函数中,同样在document.ready中的一个独立函数中,也尝试同时执行这两个函数。仍然要求验证 – SNT 2014-10-29 10:16:32

+0

更新后的答案,就像我们正在做的一样! – 2014-10-29 17:32:21