2010-09-08 5 views
2

Je peux facilement trouver comment soumettre un formulaire existant en utilisant jQuery. Mais comment puis-je, donné une URL, et certains paramètres créer et soumettre ce formulaire à la volée?Soumission de formulaire dynamique jQuery

Répondre

9

Cela sonne comme une mauvaise solution à un problème qui peut probablement être mieux résolu d'une autre manière ...

Cela étant dit, vous pouvez créer un formulaire et déclencher la méthode soumettre à assez facilement:

$([ 
    '<form action="url.php" method="post">', 
     '<input type="hidden" name="param1" value="foo"/>', 
     '<input type="hidden" name="param1" value="foo"/>', 
    '</form>' 
].join('')).appendTo('body')[0].submit(); 

Si vous devez être en mesure de préciser les paramètres et l'URL alors vous pouvez écrire une fonction similaire à celle-ci:

function submitValues(url, params) { 
    var form = [ '<form method="POST" action="', url, '">' ]; 

    for(var key in params) 
     form.push('<input type="hidden" name="', key, '" value="', params[key], '"/>'); 

    form.push('</form>'); 

    jQuery(form.join('')).appendTo('body')[0].submit(); 
} 

et l'appeler ainsi:

submitValues('url.php', { foo: 'bar', boo: 'far' }); 
+0

Salut Prestaul. C'était une idée simple et géniale. Je l'ai utilisé pour publier les valeurs dans une nouvelle fenêtre, en utilisant la cible vide. Pour cela, j'ai ajouté un argument pour définir la cible de la, et un appel ** remove() ** après le soumettre (donc je n'aurai pas de restes de forme dans mon balisage) – Mohoch

+0

@Mohoch, je suis content Cela vous a été utile, mais je dois réitérer que je ne peux pas penser à une bonne raison de le faire ... Si vous avez besoin de cette technique, vous abusez probablement de la méthode POST (vous devriez utiliser GET) ou quelqu'un a conçu un workflow qui va être aussi douloureux pour les utilisateurs que pour les développeurs ... Mes 2 cents. – Prestaul

+0

ce que nous essayions de faire est de rediriger l'utilisateur vers quelque part et passer des paramètres afin qu'ils ne soient pas visibles pour l'utilisateur. Nous pensions qu'un article était très simple, et c'était le cas. Pourquoi pensez-vous que cela sera douloureux? – Mohoch

Questions connexes