Если я сделаю это:
$('#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>