Отправка области видимости 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();" для каждого поля выбора в форме.

Другие вопросы по тегам