Правила Jquery Validator не обновляются при повторной отправке ошибочной формы
У меня есть форма с двумя взаимозависимыми полями, один набор из двух переключателей, другой текстовое поле.
Если для переключателя выбрано одно значение, текстовое поле должно быть обязательным. Когда выбрано другое поле, оно не является обязательным. Довольно простой в концепции.
Это было реализовано с помощью функции, подобной следующей, вызываемой при отправке формы:
function validateForm(form, incremental) {
...
validator = $(form).validate({
...
rules:{
"textfield-name":{
required: $("input:radio[name=auth]:checked").val() == 'A'
},
...
});
return validator.form();
Таким образом, это работает очень хорошо при первом представлении формы. Если радио, чтобы разрешить пустой ввод проверяется, форма отправляет нормально. Если отмечена другая кнопка, на странице формы отображается пустое текстовое поле, выделенное как ошибка.
Однако после отправки ошибочной формы, в которой текстовое поле было пустым, а радиокнопка, запрашивающая значение, была отмечена, если я оставлю текстовое поле пустым, но поменяю радиокнопку на пустое поле, форма все равно не будет отправлена. и текстовое поле по-прежнему подсвечивается по ошибке.
Когда я перехожу через javascript с помощью отладчика Firebug, я вижу, что он переходит через функцию validate(), которая якобы создает новый валидатор, и я вижу, что выражение для "требуемого" правила для поля оценивается как false на второй подаче, как и ожидалось. Тем не менее, после прохождения кода проверки, я смотрю на набор правил результирующего объекта проверки в его настройках, и они остаются неизменными. Валидатор для формы заблокирован после того, как он каким-либо образом создан, или есть ли способ успешно обновить набор правил между запусками проверки?