2016-07-22 17 views
0

で実行されていません関数:Ajax呼び出しは、私が機能を持っている他のフォームSUMBIT

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

私は、ユーザーが入力をクリックすると関数が呼び出され、AJAXはどのc私のDBを更新するはずのPHPページはすべてです。しかし、ボタンをクリックすると、DBは決して更新されません。私はAJAXの呼び出しが落ちていると思うが、私は理由を知らない。

誰でも上記のコードが機能しない理由を説明できますか?

+1

再度提出するなぜあなたはAJAXを使用している場合、あなたが持っているコードは、ページ... –

+1

を提出するアヤックス方法はありますか?非同期.Ajaxリクエストが完了するまで待つ必要があります。 –

+1

両方を行う必要がある場合。クリックイベント '$( "#submit-btn")の代わりにsubmitイベントを聞く方が良いでしょう。submit(function(){})'。実際にajaxが完了していることを確認するには、非同期の代わりに同期ブロッキングajax呼び出しを行いたいかもしれません。 – algorithmicMoose

答えて

2

ajax.Justを使用したいので、preventDefault()を使用してフォームを送信しないようにする必要があります。クリックハンドラの上部にevent.preventDefault();を追加し、コードを配置します。

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

偽非同期=を使用して、なぜ - これは使用すべきではない、AJAX呼び出し、次のものの時間のためのページとそれブロックのユーザーとの対話 - 、フォームおよび提出 - いくつかの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"> 

その後、(私たちが必要としないこのような状況でをバインド(あなたはAJAXの後に提出呼び出す必要があるならば、あなたの機能を変更

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

に最後のものをでpreventDefault

を使用するように私は機能を追加 - コールバックは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(); 
    }); 
}); 
関連する問題