Vous devrez faire les choses manuellement avec un appel AJAX au serveur. Pour ce faire, vous devrez également modifier le formulaire.
Mais ne vous inquiétez pas, c'est un jeu d'enfant. Voici un aperçu de la manière dont vous allez travailler avec votre formulaire :
- Remplacer l'action d'envoi par défaut (grâce à l'objet d'événement transmis, qui a un objet
preventDefault
méthode)
- récupérer toutes les valeurs nécessaires du formulaire
- lancer une requête HTTP
- traiter la réponse à la demande
Tout d'abord, vous devrez annuler l'action d'envoi du formulaire comme suit :
$("#myform").submit(function(event) {
// Cancels the form's submit action.
event.preventDefault();
});
Et ensuite, saisissez la valeur des données. Supposons que vous ayez une zone de texte.
$("#myform").submit(function(event) {
event.preventDefault();
var val = $(this).find('input[type="text"]').val();
});
Et ensuite envoyer une demande. Supposons que c'est une requête POST.
$("#myform").submit(function(event) {
event.preventDefault();
var val = $(this).find('input[type="text"]').val();
// I like to use defers :)
deferred = $.post("http://somewhere.com", { val: val });
deferred.success(function () {
// Do your stuff.
});
deferred.error(function () {
// Handle any errors here.
});
});
Et ça devrait le faire.
Note 2 : Pour l'analyse syntaxique des données du formulaire, il est préférable d'utiliser un fichier de type plugin . Il vous facilitera la vie et fournira une sémantique agréable qui imite l'action réelle d'envoi d'un formulaire.
Note 2 : Vous n'êtes pas obligé d'utiliser des defers. C'est juste une préférence personnelle. Vous pouvez également faire ce qui suit, et cela devrait fonctionner aussi.
$.post("http://somewhere.com", { val: val }, function () {
// Start partying here.
}, function () {
// Handle the bad news here.
});
0 votes
Pourquoi n'utilisez-vous pas Ajax ? Avec les fonctions Ajax de jQuery, vous pouvez définir de tels callbacks.
12 votes
Davidbuzatto, il y a des cas où vous ne pouvez pas utiliser ajax. Par exemple, lorsque vous voulez télécharger un fichier.
3 votes
@Pere Pas vrai ici dans le futur.