2016-07-22 1 views
0

으로 실행되지 않는다 기능 :Ajax 호출 내가 기능을 가지고 다른 양식 작성

$("#submit-btn").click(function() { 
    blur_slide_visit_count(); 
    $("form").submit(); 
}); 

내가 일어날 것으로 예상하면 사용자가 입력을 클릭하면, 함수가 호출되어 있으며 AJAX는 C를 실행 내 DB를 업데이 트해야 PHP 페이지 alls. 그러나 버튼을 클릭하면 DB가 업데이트되지 않습니다. 나는 AJAX 콜이 떨어지고 있다고 생각하지만 왜 그런지 모르겠습니다.

누구든지 위의 코드가 작동하지 않는 이유를 설명 할 수 있습니까?

+1

당신이 다시 제출 왜 아약스를 사용하는 경우가 ... –

+1

을 페이지를 제출해야 코드 아약스 방법은 무엇입니까? 비동기 .Ajax 요청이 완료 될 때까지 기다려야합니다. –

+1

둘 다 수행해야하는 경우. click 이벤트 '$ ("# submit-btn"). submit (function() {}) 대신 submit 이벤트를 수신하는 것이 좋습니다. 아약스가 실제로 완료되었는지 확인하려면 비동기 호출 대신 동기식 블록킹 아약스 호출을 수행하는 것이 좋습니다. – algorithmicMoose

답변

2

ajax를 사용하려는 경우 preventDefault()를 사용하여 양식 제출을 중지해야합니다. 클릭 처리기 상단에 event.preventDefault();을 추가 한 다음 코드를 삽입하십시오.

$("#submit-btn").click(function(event) { 
    event.preventDefault(); 
    .... 
}); 
1

거짓 비동기를 = 사용하는 이유 -이 사용할 수 없습니다, 아약스 호출의 시간 페이지와 차단 사용자 상호 작용, 다음 일은 - 일부 HTML 요소가 같은 기본 동작, 기본 바인딩,이 - 양식 및 제출을, 기본 동작은 바인딩이가로 preventDefault() 사용 해야 피하기 위해 양식을 보내는 것입니다 : 당신은 클릭 결합해야하는 경우, 내가 클릭하지 (좋은 연습)를 제출 바인더 제본

$("#submit-btn").submit(function(e) { 

    e.preventDefault(); 
    blur_slide_visit_count(); 
}); 

봐, 사용 버튼이 입력되지 않으면 클릭하여 이벤트 제출을 시작하지 않습니다.

는 당신의 입력을 변경

(매우 중요 유형 = "버튼" PS 유형 = "제출"양식에 제출 발사됩니다.) :

<button class="btn btn-default btn1" type="button" id="submit-btn"> 

을 다음 결박 (을 우리가 필요로하지이 상황에서)로 preventDefault를 사용하는

$("#submit-btn").click(function(e) { 

    blur_slide_visit_count(); 
}); 
당신이 다음 (내가 기능을 추가 귀하의 기능을 변경 아약스 후 제출 호출 할 필요가있는 경우

마지막 - 콜백을 AJ 후 호출 할 도끼 전화) :

function blur_slide_visit_count(callback){ 
    $.ajax({ 
    type: 'POST', 
    url: 'add_save_slide_visitor_count.php', 
    async: true, 
    data: { fillvalue: fieldArray }, 
    success : function(){ 

    //call callback after ajax 
    callback(); 
} 
}); 
} 

다음 바인딩은 다음과 같습니다

$("#submit-btn").click(function(e) { 

    blur_slide_visit_count(function(){ 
     $("form").submit(); 
    }); 
}); 
관련 문제