2010-09-03 2 views
0

J'ai un écouteur d'événement:Comment soumettre un formulaire en utilisant AJAX?

$('button.publish').live('click', function() { 
    //enter code here 
}); 

Cet élément button est à l'intérieur d'une forme. Je sais que je ne peux pas utiliser $(this).submit(); car cela provoquera une actualisation. Je ne peux pas non plus cibler le formulaire par son identifiant car j'essaye de le faire pour un usage général (ajouter des nouvelles, ajouter un contact, ajouter ...). Sachant cela, je peux utiliser l'action du formulaire car ceci est différent l'un de l'autre mais je ne sais pas comment soumettre le formulaire dans l'écouteur d'événement de bouton en utilisant AJAX (en utilisant $.post()).

Est-ce l'utilisation correcte:

var form = $(this).closest('form'); 
$.post(form.attr('action'), form.serializeArray(), callback, type); 

Ou il y a une meilleure façon?

Répondre

0

Qu'est-ce que vous avez est correct, vous pouvez utiliser .serliaze() pour sauver quelques pas du côté jQuery, comme ceci:

var form = $(this).closest('form'); 
$.post(form.attr('action'), form.serialize(), function(data) { 
    alert("The response was: " + data); 
}); 
0

Je ne connais pas un moyen avancé, mais un moyen simple est d'obtenir les données de chaque élément de formulaire comme avec $ ("# bar"). Val(); exemple rapide:

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: data: "bar="+$("#bar").val()+"&foo=bar", 
    success: function(msg){ 
    alert("Data Saved: " + msg); 
    } 
}); 
Questions connexes