【发布时间】: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