2014-10-29 150 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