【发布时间】:2019-05-01 17:12:27
【问题描述】:
如果我这样做:
$('#form').validate({
// ....
})
然后我隐藏表单#form:
$('#form').hide() .
然后我检查$('#form').valid(),即使表单应该无效,我总是得到true。
示例:当表单显示时单击checkTestValid,文本字段中没有任何内容(它会提示false),然后使用clickHide 隐藏表单,然后使用checkTestValid 再次检查(它会提示true):
$('#testForm').validate({
rules: {
testInput: {
required: true,
}
},
});
$(".btnTest").click(function() {
$("#tab2").hide();
})
$(".btnTest2").click(function() {
$("#tab2").show();
})
$(".clickTestVelid").click(function() {
alert($("#testForm").valid())
})
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/additional-methods.js"></script>
<div id="tab1">
<button class="btnTest">clickHide</button>
<button class="btnTest2">clickShow</button>
</div>
<div id="tab2">
<form id="testForm">
<input required value="" name="testInput">
</form>
</div>
<button class="clickTestVelid">clickTestValid</button>
【问题讨论】: