Ваш код ...
$().ready(function() {
// validate UserSettings form on keyup and submit
$('#CheckBox').click(function() {
$("#TextBox").validate({
rules: {
NextLocation: {
required: true
}
}
});
});
});
... имеет следующие вопросы ...
1) $().ready()
не рекомендуется as per jQuery docs. Вместо этого используйте $(document).ready()
.
2) Вы не можете подключить .validate()
к входному элементу. Он присоединяется только к элементу <form>
.
3) Метод .validate()
используется только для инициализации плагин, а не для тестирования ничего. Поэтому он обычно не входит в обработчик click
. Вы стреляете .validate()
только один раз, как только форма будет построена, как правило, в готовом обработчике DOM.
4) Если вы хотите сделать что-то required
в зависимости от состояния чего-то еще, вы должны использовать метод depends
в правиле required
.
Моя рабочая демо ниже показывает, что текстовое поле с именем NextLocation
только required
когда флажок с именем check
не проверено:
$(document).ready(function() { // DOM ready handler
$('#myform').validate({ // attach to form to initialize plugin with options
rules: {
NextLocation: {
required: {
depends: function() {
return !$('input[name="check"]').is(':checked');
}
}
}
}
});
});
HTML:
<form id="myform">
Checkbox: <input type="checkbox" name="check" />
NextLocation: <input type="text" name="NextLocation" />
</form>
DEMO: http://jsfiddle.net/dymmw/
Вы пытались просто набирать false вместо true? – adeneo
Было бы лучше также показать вашу разметку HTML. – Sparky