У меня проблема с изменением определенного правила из проверки JQuery на основе запроса Get Ajax.
У меня есть одна форма, составленная из одной родительской формы, и две дочерние формы, которые обновляются запросом Jquery.post,Две дочерние формы, при отправке, обновляют счетчик, который сохраняется в соответствующих скрытых входных данных, и проверку при условии, что счетчики должны иметь хотя бы один элемент, зарегистрированный для обоих, работали нормально ... пока правило не станет более сложным.
Теперь, в зависимости от значения элементов первой сохраненной дочерней формы, правило «мин» должно быть активировано или нет.
Пример: элементы имеют значения кода между 200и 500;если есть хотя бы один элемент, зарегистрированный с кодом выше или равным 300, то должно применяться правило «мин», иначе оно не нужно.Проблема заключается в том, что его нужно решать динамически, потому что, если элементы с кодом> = 300 удаляются из первого списка дочерних форм или если нет элемента с таким значением кода, а затем один из них сохраняется, правила проверкинеобходимо обновить.
Я пытался обновить правило по возвращении функции успеха $ .post, оно только добавляет правило, а не удаляет его вообще:
$.get('{url of the updating form}', function(data){
if (data >=300) {
$('#counter_form_child_2').rules('add', { min: 1 });
} else {
$('#counter_form_child_2').rules('remove'); //removes all rules for this input
}
});
Пробовалсделать запрос, который возвращает bool (true или false) поиск, если есть какой-либо элемент с кодом> = 300, и поместить его в другое скрытое поле:
//Code inside the js function that returns the boolean value
$.get('{url of the updating form}', function(data) {
$('#item_above_300').val(data); //puts value into hidden field
});
//Code inside form validation rules
$("#parentForm").validate({
ignore: ':hidden:not(#counter_form_child1, #counter_form_child1),
rules : {
(...)
counter_child_form1: { min: 1 },
counter_child_form2: {
min: { param: 1,
depends: function(element) {
return $('#item_above_300').val() === 1;
}
}
}
}
});
Мне нужна помощь, потому что я исчерпан изпробовать несколько альтернатив, и ничего не работает.Большое спасибо!