2009-09-12 14 views
2

Je suis en train de soumettre un formulaire à travers javascript à la volée (à forme jquery)Création « forme » en javascript sans forme html

Est-il possible de créer bouquet de mise à jour « FORM » des valeurs dans ce « FORMULAIRE 'en utilisant javascript sans avoir HTML-forme?

Répondre

5

Je vais deviner que ce que vous demandez est «Puis-je effectuer un POST HTTP sans utiliser un formulaire HTML? La réponse est oui.

Découvrez $ .post() de jquery. Il ressemblerait à quelque chose comme ceci:

$.post(url, { value1: "foo", value2: "bar" }); 

Lorsque les noms de variables vous passez sont valeur1/valeur2 avec leurs valeurs correspondantes.

est ici la référence jquery: $.ajax

1

Vous pouvez afficher toutes les valeurs sous la forme par

$.ajax({url: XXX, data: { formField1: "value" }}) 
2

Je pense que vous voulez dire l'une des deux choses suivantes:

  1. Can Je crée un élément <form> en utilisant javascript?
    A: Oui, vous pouvez.
    Utilisez jQuery DOM manipulation functions pour ce faire. Est-ce que je peux soumettre des valeurs à un script côté serveur comme le ferait un <form>?
    A: Oui, vous pouvez. Utilisez jQuery Ajax functions pour cela. Plus spécifiquement, jQuery.post() est votre ami.
    jQuery form plugin peut être utile si vous voulez faire quelque chose entre ces deux options.

Cheers!

+1

Ce premier point est extrêmement mauvais, même si c'est facilement possible, car il détruit complètement l'accessibilité. Si les gens n'arrivent pas à comprendre comment mener des actions destructrices par eux-mêmes, ils ont moins de mal à leur mentir en disant que cela ne peut être fait avant d'apprendre le contraire en faisant progresser leurs propres capacités de façon indépendante. –

+0

Je ne dis pas que l'utilisation aveugle de ces fonctions aboutira à la solution parfaite. Ce sont les outils. Entre les mains d'un maître, ils peuvent créer une solution parfaite en termes d'accessibilité et de dégradation gracieuse. Considérons: le remplacement des liens vers 'renommer élément 'par le renommage des formulaires ajax, si l'agent utilisateur est capable d'interpréter l'interface. – jrharshath

2

Ce code va créer un formulaire à la volée, le remplir avec les données transmises et le soumettre (comme un HTTP POST normal). Cela devrait être ce dont vous avez besoin.

var postRequest = function (uri, data) { 

    data = data || {}; 

    var form = $('<form method="post" class="js:hidden">').attr('action', uri); 

    $.each(data, function(name, value) { 
     var input = $('<input type="hidden">') 
      .attr('name', name) 
      .attr('value', value); 
     form.append(input); 
    }); 

    $('body').append(form); 
    form.submit(); 
};