2012-07-16 5 views
0

이 내 양식입니다 :양식을 제출 한 후 어떻게 colorbox를 열 수 있습니까?

<form name="Aform" method="post" action="test.php" id="Aform"> 

이 내 스크립트입니다

var validator = $("#Aform").validate({ 
... 
// form.submit(); <-- it works  
form.submit(function() { 
$.post($(this).attr("action"), $(this).serialize(), function(data) { 
    $.colorbox({html:data}); 
}, 
'html'); 
return false; 
}); 
// <-- it does not work 
+0

코드를 더 설명 할 수 있습니까? –

답변

1

당신이 오류가 발생하는 경우 확인하려면 JS 콘솔 봤어? POST 요청이 성공적이며 데이터를 반환했는지 확인 했습니까?

이 코드는 제출 이벤트가 발생했을 때만 실행됩니다 (코드에 대한 가정을하지 않음). 그런 다음 또 다른 이벤트 핸들러를 정의했지만 제출 이벤트가 다시 발생하지 않기 때문에 해당 핸들러는 실행되지 않습니다.

form.submit()을 호출하면 제출 이벤트가 발생하고 form.submit(function(){})은 이벤트 처리기를 정의하지만 제출 이벤트는 발생하지 않습니다.

이벤트 핸들러를 정의한 후에 form.submit()으로 호출 할 수 있지만 이벤트 핸들러를 정의하고 즉시 호출하면 불필요한 후프를 건너 뛰고 있습니다. 대신 다음 작업을 수행 할 수 있습니다.

var validator = $("#Aform").validate({ 
... 
$.post($(this).attr("action"), $(this).serialize(), function(data) { 
    $.colorbox({html:data}); 
}, 
'html'); 
관련 문제