2013-08-31 4 views
56

.on()에 문제가 있습니다. 폼 요소가 여러 개인 경우 (class="remember" 양식), AJAX를 사용하여 form.remember을 추가합니다.Jquery .on() 제출 이벤트

$('form.remember').on('submit',function(){...}) 

하지만 작동하지 않습니다 AJAX와 추가 구성 : 그래서, 나는 그것이 같은 이벤트 뭔가를 제출 처리합니다.

어디에 문제가 있습니까? 그게 버그 야?

+9

시도'$ (문서) CSTE 연구진은(), 기능 ('form.remember'을 '제출'{...})' – Sergio

답변

131

당신은 문서 수준으로 $('form.remember').submit( 같은

$(document).on('submit','form.remember',function(){ 
    // code 
}); 

$('form.remember').on('submit' 작업을 이벤트를 위임 할 필요가 있지만 $(document).on('submit','form.remember'를 사용할 때 DOM 나중에 추가 된 다음도 작동합니다.

+16

는 또한 명심 그 '$ (document.onember) .'는'$ (document.onember) .'보다 훨씬 성능이 떨어집니다. (** submit'') 이제 문서의 ** 모든 ** 이벤트를 수신해야합니다. 가능하다면 범위를 "문서"를 듣는 것보다 약간 제한하기 위해 – Liam

+2

$ ('body'). ('submit', 'form.remember', function() { // 코드 }); 내 문제 –

12

나는 동일한 증상에 문제가있었습니다. 필자의 경우 제출 기능에 "return"문이 누락되었습니다. 예를 들어

:

$("#id_form").on("submit", function(){ 
    //Code: Action (like ajax...) 
    return false; 
}) 
+0

비슷한 문제가 있었는데 두 개 이상의 양식이 있고 각각의 양식은 AJAX 액션을해야했습니다. "입력"버튼을 클릭하면 Ajax 작업이 호출되지 않았습니다. –

+0

Ok. 나는 대답을 편집한다. 나는 내 목적이 훌륭하다고 생각하지만 그것을 보여줄 수있는 방법은 아니었다. 감사 –