【问题标题】:How to disable validation on hidden controls如何禁用对隐藏控件的验证
【发布时间】:2013-12-27 07:17:00
【问题描述】:

我在我的应用程序中使用引导程序。

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

这里我只需要验证Control1 div。我不想验证隐藏的 div (Control2),但它正在得到验证。

我正在使用

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

请帮帮我。

【问题讨论】:

  • 从你想要删除验证的类中删除类和data-val-required 属性。
  • 将其设置为 ignore: "#txtId" 以忽略该字段,因为在不显示父元素时它并没有真正隐藏。
  • 另外,默认是ignore : ':hidden' 并且使用了jQuery 的not() 选择器,它应该也可以工作,所以只需删除你已经拥有的忽略规则也应该可以工作。

标签: javascript jquery html validation twitter-bootstrap


【解决方案1】:

参考这个..

$(formSelector).bootstrapValidator({
excluded: [':disabled', ':hidden', ':not(:visible)'],
feedbackIcons: {
    valid: 'glyphicon glyphicon-ok',
    invalid: 'glyphicon glyphicon-remove',
    validating: 'glyphicon glyphicon-refresh'
},
live: 'enabled',
message: 'This value is not valid',
submitButtons: 'button[type="submit"]',
trigger: null,
fields: ...
});

欲了解更多信息,请转到Bootstrap Validation Setting

【讨论】:

    【解决方案2】:

    ignore: ':hidden' 为我工作。

    $("#myForm").validate({ 
        ignore: ':hidden', 
        submitHandler: function( form ) {
            //To do
        }
    });
    

    仅当字段被隐藏时才忽略必需的验证。 希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      您需要这样做: 忽略:“#hidden”对我有用

      $("#myform").validate({
          ignore: "#hidden"
        });
      

      【讨论】:

        【解决方案4】:

        将验证控件的 Enabled 属性设置为 false。

        CausesValidation="False"
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-07-05
          • 2013-12-31
          • 2020-03-19
          • 2017-08-01
          • 1970-01-01
          • 2023-03-02
          • 2018-05-18
          • 2019-01-29
          相关资源
          最近更新 更多