Отправка области видимости Coldbox RC при изменении ввода формы через AJAX и возврат строки для отображения на странице
Мне нужно передавать переменные формы через AJAX каждый раз, когда изменяется значение поля выбора, и получать возвращаемую строку из вызова AJAX для отображения на странице. Вот ситуация:
Я создал форму, которая динамически создается пользователем для набора правил соответствия. Это позволяет пользователю иметь несколько полей выбора для генерации логического оператора, такого как следующее:
(
( 6779 AND 10852 AND 10845 )
AND
(
( 8260 AND 8258 )
)
)
OR
( 6780 OR 10845 OR 8258 OR 12893 )
Я написал функцию, которая возвращает этот логический оператор в виде строки после отправки формы, но хотел бы динамически заполнить div (#logicblock) на странице формы ДО отправки, чтобы пользователь мог проверить логику перед отправкой информация в нашу базу данных.
Я пытался использовать следующее:
('##logicblock').load("#getmodel('model.compliance').BuildLogic(rc)#", function(response){
$('##logicblock').html(response);
})
... но это не правильно передает область действия RC в мою модель. Я искал и не могу найти способ, который имеет смысл отправлять всю область формы в метод, который возвращает значение для отображения на странице.
1 ответ
Я понял это. Поскольку поля формы генерируются динамически, я обнаружил, что не могу использовать $('select').change()
событие для вызова метода, поэтому я написал метод-обработчик для генерации данных и сериализовал форму для передачи в обработчик. Я смог использовать следующее, чтобы получить желаемый ответ:
function updateLogicBlock(){
var serialform = $('form').serialize();
$.get("#event.buildLink('handler.buildComplianceLogic')#?" + serialform,
function(data) {
$('##logicblock').html(data);
});
};
Тогда я просто добавил onChange="updateLogicBlock();"
для каждого поля выбора в форме.