2017-03-29 14 views
0

선택 상자 값이 변경 될 때마다 양식 변수를 AJAX를 통해 전달하고 AJAX 호출에서 반환 된 문자열을 표시해야합니다. 그 페이지. 상황은 다음과 같습니다.AJAX를 통해 양식 입력 변경시 Coldbox RC 범위 제출 및 페이지에 표시 할 문자열 반환

준수 규칙 집합에 대해 사용자가 동적으로 작성한 양식을 작성했습니다. 이것은 사용자가 같은 논리 문을 생성하는 다중 선택 상자를 가질 수 있도록 다음

(
    (6779 AND 10852 AND 10845) 
    AND 
    (
    (8260 AND 8258) 
) 
) 
OR 
(6780 OR 10845 OR 8258 OR 12893) 

I 양식의 제출 후 문자열로이 논리 문을 반환하는 함수를 작성했습니다,하지만 싶습니다 제출하기 전에 양식 페이지에서 div (#logicblock)를 동적으로 채 웁니다. 그러면 사용자가 정보를 Google 데이터베이스에 제출하기 전에 논리를 확인할 수 있습니다.

나는 다음과 같은 사용하려 :

('##logicblock').load("#getmodel('model.compliance').BuildLogic(rc)#", function(response){ 
    $('##logicblock').html(response); 
}) 

... 그러나 이것은 제대로 내 모델로 RC의 범위에 전달하지 않습니다. 검색 한 결과 전체 양식 범위를 페이지에 표시 할 값을 반환하는 메서드로 보내는 것은 나에게 맞는 방법을 찾지 못했습니다.

답변

0

알아 냈습니다. 양식 필드가 동적으로 생성 되었기 때문에 $('select').change() 이벤트를 사용하여 메서드를 호출 할 수 없다는 것을 알았습니다. 따라서 데이터를 생성하는 처리기 메서드를 작성하고 처리기에 전달할 양식을 serialize합니다.

function updateLogicBlock(){ 
    var serialform = $('form').serialize(); 
    $.get("#event.buildLink('handler.buildComplianceLogic')#?" + serialform, 
     function(data) { 
     $('##logicblock').html(data); 
    }); 
}; 

그런 다음 단순히 형태의 모든 선택 상자에 onChange="updateLogicBlock();" 추가 : 내가 원하는 응답을 얻기 위해 다음을 사용할 수 있었다.