2012-11-07 4 views
4

Rails 앱에는 jQuery로드 메소드를 사용하여 Ajax를 통해로드되는 양식이 있습니다.: ajax를 통해로드 된 양식에서 remote => true/data-remote

function load_sales_form(product_id) { 
    $("#sales_form").load("<%= url_for(:action => :show_sales_form) %>"/ + product_id); 
} 

로드 된 형태는 form_for 와 태그가 : 원격 => 진정한 옵션을 그리고 폼에 데이터 원격 = "true"를 속성을 추가한다.

하지만 사용자가 태그 제출 버튼을 클릭 할 때 양식이 Ajax를 사용하여 제출되지 않습니다. 양식이 표준이 아닌 아약스 방식으로로드되면 제대로 작동하지만 문서가 준비되면 양식이 아약스를 통해로드되고 아약스를 사용하여 제출되지 않으면 표준 양식으로 제출됩니다.

rails.js 파일 (ajax를 통해 데이터 원격 양식을 제출할 수있는 항목 포함)은 html 콘텐츠를 ajax를 통해로드 된 기능에 적용하지 않기 때문에 발생합니다.

rails.js 파일을 강제로 Ajax를 통해로드 된 컨텐츠에 적용 할 수 있습니까?

+0

'url_for'뒤에 닫는 괄호가 누락 된 것 같습니다. – PinnyM

+1

사이드 노트 : * 항상 * 자바 스크립트를 디버깅 할 때 자바 스크립트 콘솔을 열어 두어야합니다. 무언가가 작동하지 않으면 오류를 찾아내는 것이 중요합니다. AJAX를 사용하면 xhr 요청 및 오류를 볼 준비가 된 상태에서 Chrome 네트워크 모니터와 같은 기능을 사용할 수 있습니다. –

+0

PinnyM - 고마워, – razenha

답변

2

같은 상황이 여기에 있습니다. 해결책을 찾았습니다. 동적 로딩이 아니지만, submit 이벤트의 잘못된 트리거링이 원인이었습니다.

나는 부트 스트랩 모달data-targethref으로 설정했습니다. 이로 인해 .modal-body의 내용이 href에 지정된 주소의 AJAX를 통해로드됩니다.

모달에는 저장 버튼 (로드 된 양식 외부)이 미리 설치되어 있으며 이와 같이 제출되었습니다.

$modal.find("form.loaded_form").get(0).submit(); // INCORRECT 

전자에만 제출 원시 실행하지만 :

$modal.find("form.loaded_form").trigger('submit'); // CORRECT 

트릭을 수행합니다.

관련 문제