Gewusst wie: deaktivieren der überprüfung auf versteckte Steuerelemente

Ich bin mit bootstrap in meiner Anwendung.

Standard.aspx

<div class="form-horizontal">
  <div id="Control1">
    <div class="control-group">
      <label class="control-label">DropDown Control
      </label>
      <div class="controls">
        <select data-val="true" data-val-required="Field is required" name="">
        <option value="">--Select--</option> 
        <option value=1>Value1</option>
        <option value=2>Value2</option>
        </select>
      </div>
    </div>
  </div>
  <div id="Control2" style="display;none;">
    <div class="control-group">
        <label class="control-label">Textbox Control
        </label>
       <div class="controls">
        <input type="text" id="txtId" data-val="true" data-val-required="Field is required"/>
       </div>
    </div>
  </div>
</div>   
<button id="btnSubmit" class="btn btn-success" onclick="Submit();">
  Submit</button>

<script type="text/javascript">

  $.validator.setDefaults({
    ignore: "hidden"
  });

  function Submit() {
    if (!$('#Form1').valid()) {
      return false;
    }
  }
</script>

Hier muss ich überprüfen nur die Control1 div. Ich möchte nicht überprüfen versteckten div (Control2), aber es ist immer validiert werden.

Ich bin mit

js/jquery.validate.min.js
js/uncompressed/jquery.validate.js
js/uncompressed/jquery.validate.unobtrusive.js

Bitte helfen Sie mir.

  • Entfernen Sie die Klasse und die data-val-required Attribute aus, die Sie entfernen möchten die Validierung.
  • Legen Sie es auf ignore: "#txtId" zu ignorieren, Feld, da es nicht wirklich versteckt, wenn ein übergeordnetes element wird nicht angezeigt.
  • Auch der Standard ist ignore : ':hidden' und als jQuery - not() - Selektor verwendet wird, das sollte auch funktionieren, so einfach entfernen Sie die Regel ignorieren, die Sie bereits haben, sollte auch funktionieren.
InformationsquelleAutor Deepak | 2013-12-27
Schreibe einen Kommentar