Crea e invia in modo dinamico il modulo

2022-07-29 12:30:23

C'è un modo in jQuery per creare e inviare un modulo al volo?

Qualcosa come di seguito:

<html>
    <head>
        <title>Title Text Goes Here</title>
        <script src="http://code.jquery.com/jquery-1.7.js"></script>
        <script>
            $(document).ready(function(){alert('hi')});
            $('<form/>').attr('action','form2.html').submit();
        </script>
    </head>
    <body>
        Content Area
    </body>
</html>

Dovrebbe funzionare o esiste un modo diverso per farlo?

- Santosh Gokak

Source
Risposta


88
  • C'erano due cose che non andavano nel tuo codice. Il primo è che hai incluso $(document).ready(); ma non hai eseguito il wrapping dell'oggetto jQuery che sta creando l'elemento con esso.

    Il secondo era il metodo che stavi usando. jQuery creerà qualsiasi elemento quando il selettore (o dove normalmente metti il ​​selettore) viene sostituito con l'elemento che desideri creare. Quindi lo aggiungi al corpo e lo invii.

    $(document).ready(function(){
        $('<form action="form2.html"></form>').appendTo('body').submit();
    });
    

    Ecco il codice in azione. In questo esempio, non viene inviato automaticamente, solo per dimostrare che aggiungerebbe l'elemento del modulo.

    Ecco il codice con invio automatico. Funziona bene. Jsfiddle ti porta a una pagina 404 perché "form2.html" non esiste sul suo server, ovviamente.