2010-07-08 3 views
1

J'ai une ModelForm Django mais je ne veux pas que l'utilisateur clique sur un bouton de soumission reguar. Au lieu de cela, j'ai fait mon propre bouton de soumission et afficherai les données du formulaire en utilisant Ajax/jQuery. Les données à publier sont un mélange des données de formulaire et d'autres informations que je rassemble sur mon interface utilisateur. Mais ... comment puis-je obtenir les données POST formatées que le formulaire html était censé soumettre? Si je peux l'obtenir comme objet JSON ou jQuery, mieux!Comment obtenir les données POST formatées d'un formulaire Django?

Répondre

1

Vous pouvez utiliser jQuery.serialize() pour cela que vous pouvez à son tour passer comme 2ème argument de jQuery.post().

$('#formid').submit(function() { 
    $.post('serverUrl', $(this).serialize(), callbackFunction); 
    return false; 
}); 

Vous pouvez également utiliser le jQuery Form plugin pour cela, ce qui rend des choses plus facile.

+0

Bon! Mais j'ai besoin de mélanger ce sérialisé avec un autre objet comme {param1: 1, param2: 2} Un autre problème est que lorsque je crée un objet

, chaque fois que j'appelle $ .post(), il va effectivement poster mon formulaire, recharger le page, ce qui n'est pas bon! – Roger

+0

1. Eh bien, vous pouvez obtenir $ (this) .serialize() 'dans un objet javascript avant l'appel de post, et ajouter des champs manuellement; 2. Vraiment, non, non. '$ .post' est une soumission AJAX, et' return false' signifie que l'action de soumission par défaut du formulaire n'est pas effectuée. –

+0

@Roger, @Daniel a raison. Faites quelque chose comme 'var data = $ (this) .serialize(); data.param1 = 1; '. Le 'return false;' devrait bloquer l'action par défaut du formulaire. – BalusC

Questions connexes