Vous devrez faire les choses manuellement avec un appel AJAX au serveur. Cela vous obligera également à remplacer le formulaire.
Mais ne vous inquiétez pas, c'est du gâteau. Voici un aperçu de la manière dont vous allez travailler avec votre formulaire:
- remplacer l'action de soumission par défaut (grâce à l'objet événement passé, qui a une
preventDefault
méthode)
- saisir toutes les valeurs nécessaires du formulaire
- déclencher une requête HTTP
- gérer la réponse à la demande
Tout d'abord, vous devrez annuler l'action d'envoi de formulaire comme suit:
$("#myform").submit(function(event) {
// Cancels the form's submit action.
event.preventDefault();
});
Et puis, saisissez la valeur des données. Supposons simplement que vous ayez une zone de texte.
$("#myform").submit(function(event) {
event.preventDefault();
var val = $(this).find('input[type="text"]').val();
});
Et puis lancez une demande. Supposons simplement que ce soit 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 cela devrait le faire.
Remarque 2: Pour analyser les données du formulaire, il est préférable d'utiliser un plugin . Cela vous facilitera la vie et vous fournira une belle sémantique qui imite une action de soumission de formulaire réelle.
Remarque 2: Vous n'êtes pas obligé d'utiliser des reports. C'est juste une préférence personnelle. Vous pouvez également faire ce qui suit, et cela devrait également fonctionner.
$.post("http://somewhere.com", { val: val }, function () {
// Start partying here.
}, function () {
// Handle the bad news here.
});