2017-02-10 1 views
0

にロードされた私は、多くのJavaScript依存関係を持っていると私はAJAX呼び出し<form>デフォルトsubmissionがにそれらのほとんどがcdnあり、preventedあり、そしてsuccess message負荷そこから知っていない状況がありますa <p id="contentLoadsHereFirst"></p>がどのようにデータやコンテンツを知っている要素

ここでは、demoにはsetTimeout()を使用しました。reallyは、ajax callが終了する時期を知りません。私に

ヒント(AJAX終了):contentは私の質問は、私はデモだけためsetTimeout()を使用しているdataがここ<p id="contentLoadsHereFirst"></p>にロードされたときに$('#message').text('');を作成する方法である<p id="contentLoadsHereFirst"></p>

にロードされます。ここで

は、コードスニペットとJSFiddleです:

$('#submit').click(function(e){ 
 
    e.preventDefault(); 
 
    $('#message').text('Please wait.........'); 
 
    setTimeout(function(){ 
 
    $('#contentLoadsHereFirst').text('Message Has Been Sent Successfully'); 
 
    },1500); 
 
    //my pseudo code 
 
    
 
/*if($('#contentLoadsHereFirst').html() != ''){ 
 
    $('#message').text(''); 
 
    }*/ 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="submit" name="submit" value="Update" id="submit"> 
 

 
<p id="contentLoadsHereFirst"></p> 
 

 
<p style="color:red;" id="message"></p>

+0

jquery ajaxメソッドには成功コールバックがあります。読み込み中のメッセージ –

+0

私は、 'submit'ごとに' '引き継ぎます' 'プラグイン'を使用しています。私はどこから知りません – EaB

+0

https://api.jquery.com/ajaxComplete/ –

答えて

1

jQuery ajax methodはあなたがロードメッセージを非表示にすることができ、成功コールバックを持っています。

スニペットでは、メッセージを非表示にするコードブロックをsetTimeout関数内に追加できます。

$('#submit').click(function(e){ 
 
    e.preventDefault(); 
 
    $('#message').text('Please wait.........'); 
 
    setTimeout(function(){ 
 
    $('#contentLoadsHereFirst').text('Message Has Been Sent Successfully'); 
 
    if($('#contentLoadsHereFirst').html() != ''){ 
 
    $('#message').text(''); 
 
    } 
 
    },1500); 
 
    //my pseudo code 
 
    
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="submit" name="submit" value="Update" id="submit"> 
 

 
<p id="contentLoadsHereFirst"></p> 
 

 
<p style="color:red;" id="message"></p>

別の解決策は、以下のコードフォーマットを試してみてください

$(document).ajaxComplete(function(event, xhr, settings) { 
    if (settings.url === "ajax/test.html") {//a way to filter the responses 
    $('#message').text(''); //here you ca hide your div 
    } 
}); 
+1

それは私のために働い+1 +1この答えを受け入れる – EaB

0

(詳細はこちらhttps://api.jquery.com/ajaxComplete/)アヤックスにグローバルハンドラをアタッチすることです:

$('#submit').click(function(e){ 
e.preventDefault(); 
    $.ajax({ 
     url: 'Your Action Link', 
     data: {},//additional data 
     type: "POST", 
     beforeSend: function() { 
      $('#message').text('Please wait......'); 
     }, 
     success: function (response) { 
      $('#contentLoadsHereFirst').text(response.message); 
     }, 
     error: function (xhr, textStatus, error) { 
     console.log(error.messge); 
     } 
    }); 
}); 
+0

私はこのコードを知っているが、私は 'AJAX呼び出し'が '初期化されて'からわからない。あなたが理解してほしい – EaB

+0

[ajaxComplete](http://api.jquery.com/ajaxcomplete/)リンクがあなたを助けてくれることを確認してください。 – TechVision

関連する問題