jquery ajax ($ .post) affichant une icône pendant le traitement de la demande

J’utilise $ .post de jquery pour ajax (comme pour remplir une zone de sélection avec une valeur sélectionnée dans une zone de sélection différente) J’ai utilisé le code suivant pour cela

$('#cmbState').change(function(){ $.post('', {stateid: $(this).val(), option: 'getCitiesList'}, function(response){ if(response != '') { $('#cmbCity').html(response); } }) }); 

Le code ci-dessus fonctionne parfaitement, mais il n’indique pas à l’utilisateur que la demande ajax est en cours et qu’il doit attendre un peu.

Je veux montrer une image à côté du contrôle html qui est affichée jusqu’à ce que la réponse soit chargée.

Je veux la réponse en termes de jQuery seulement. J’ai trouvé quelque chose de lié à cela sur jquery docs également ($ .ajax), mais je souhaite obtenir cette fonctionnalité avec la méthode $ .post (si cela est possible)

S’il vous plait, j’ai besoin de votre aide avec ceci. tous les indices sont grandement appréciés

Merci

Vous pouvez utiliser les ajax Events AjaxStart et ajaxComplete globaux pour exécuter un morceau de code chaque fois qu’une requête AJAX démarre ou se termine, par exemple:

 // show the '#loading' element when ajaxStart, and hide it when ajaxComplete $("#loading").bind("ajaxStart", function(){ $(this).show(); }).bind("ajaxComplete", function(){ $(this).hide(); }); 

Ainsi, vous n’avez pas besoin d’append de logique pour gérer le message de chargement dans toutes les demandes Ajax que vous avez effectuées.

 $.ajax({ url:'/', data: params, type:'POST', beforeSend: function() { alert("loading") }, success:function(html){ alert(html) } }); 

Placez votre code de chargement dans la fonction beforeSend, qui se déclenche avant que le success soit appelé.