2013-10-09 1 views
0

기본 이벤트를 중지하고 몇 가지 기능을 실행 한 후에 실행하려고합니다. 그러나 그것은) (Jquery를 사용하여 중지 및 시작 기본값

$(#form_id).submit(function(event){ 
     event.preventDefault(); 
     get_hours(); // the function that i need to call 
     document.form_name.submit(); 
}); 

하지만 get_hours 전에 작동 나던; 실행될 수 있습니다. 양식이 이미 제출되었습니다. 어떻게하면이 일을 할 수 있을까요? 제발 도와주십시오

+1

선택자에 따옴표가 없습니다. '$ (# form_id)'를'$ ('# form_id')'로 변경하십시오. –

+0

양식 제출 (마지막 코드 줄)을 주석으로 처리하십시오. 여전히 양식을 제출합니까? 그렇다면 문제의 원인을 좁혔습니다. 응답에 대한 – BrianHall

답변

1

.submit() 이벤트에 대한 기본값을 방지하고 있습니다.

.click() 이벤트에서이를 수행하십시오. 이처럼 :

$("#form_id button").click(function(event) { 
    event.preventDefault(); 
    get_hours(); 
    document.form_name.submit(); 
}); 

당신은 무엇 이건 이벤트는 양식을 제출 촬영 '클릭'로 대체 할 수 있습니다. 또한 '버튼'을 이벤트를 트리거하는 항목의 선택자로 바꿉니다.

+0

주셔서 감사합니다. 나는 이것을 일찍 시도했다. 문제는 get_hours가 ajax 호출이라는 것입니다. 단추를 클릭하자마자 함수를 실행하지만 AJAX 호출이 완료되기 전에 이미 제출하기 시작합니다. 이 경우 – user2583714

+0

을 호출하면 ajax 호출의 'success'처리에 대한'document.form_name.submit()'에 대한 호출을 추가하거나 ... 계속하기 전에 함수가 응답을 기다리도록 'ajax 호출'을 만듭니다. submit() 양식 – ochi