2010-07-21 15 views
13

come posso creare un modulo con javascript?Creare dinamicamente un modulo HTML con Javascript

Non ho alcuna idea su come procedere, ho cercato su google la mia faccia, ma non c'è nulla di definitivo che possa mostrarmi come creare dinamicamente forme con esso.

Grazie in anticipo!

+0

In pratica, esattamente come si creano altri elementi con JavaScript, utilizzando 'createElement' o jQuery. Puoi usare jQuery? –

+0

Sì, posso usare jQuery, non troppo familiare con esso però. – Odyss3us

risposta

5

Credo che la pubblicazione di un soluzione completa sarebbe troppo, ma guarda che jQuery per questo. Vi do un suggerimento, jQuery di .append() potrebbe essere molto utile per voi :)

0

La mia raccomandazione sarebbe quella di ottenere la libreria underscore.js e utilizzare la sua funzione template per creare i moduli. (Se il carattere di sottolineatura è troppo grande per te, la funzione modello può stare in piedi da sola).

3

Sì, è possibile creare qualsiasi quantità di html comprese le forme di JavaScript in esecuzione,

Forse: `

<html> 
    <body> 
    <h1>My Form</h1> 
    <div id="formcontent"> 
    </div> 
    </body> 
</html> 

nostro JavaScript potrebbe essere simile:

var e1 = document.CreateElement("input"); 
el.type = "text"; 
el.name = "myformvar"; 

var cont = document.GetElementById("formcontent") 
cont.appendChild(e1); 
0

provare questo ..

myWin = open("", "displayWindow", "width=800,height=500,status=yes,toolbar=yes,menubar=yes"); 

       myWin.document.open(); 
       myWin.document.write("<html><head><title>V E N U S </title>"); 
       myWin.document.write("<style type='text/css'>.hdr{.......}</style>"); 
        myWin.document.write("</head><body onload='window.print()'>"); 
          myWin.document.write("<div class='hdr'>"); 

           myWin.document.write("what ever you want"); 
           . 
           . 


         myWin.document.write("</div>");    
        myWin.document.write("</body></html>"); 
       myWin.document.close(); 

che è creerà un modulo con DIV dentro ...

25

Si potrebbe provare qualcosa di simile:

La parte HTML:

<html> 
<head></head> 
<body> 

<body> 
</html> 

Il javascript:

<script> 
//create a form 
var f = document.createElement("form"); 
f.setAttribute('method',"post"); 
f.setAttribute('action',"submit.php"); 

//create input element 
var i = document.createElement("input"); 
i.type = "text"; 
i.name = "user_name"; 
i.id = "user_name1"; 

//create a checkbox 
var c = document.createElement("input"); 
c.type = "checkbox"; 
c.id = "checkbox1"; 
c.name = "check1"; 

//create a button 
var s = document.createElement("input"); 
s.type = "submit"; 
s.value = "Submit"; 

// add all elements to the form 
f.appendChild(i); 
f.appendChild(c); 
f.appendChild(s); 

// add the form inside the body 
$("body").append(f); //using jQuery or 
document.getElementsByTagName('body')[0].appendChild(f); //pure javascript 

</script> 

Questo modo in cui puoi creare tanti elementi quanti vuoi dinamicamente.

+0

Questa soluzione ha funzionato alla grande. Grazie! –

+0

Nel caso in cui il DOM non venga caricato al momento dell'esecuzione dello script, è possibile che venga visualizzato un errore: nel mio caso, ho ricevuto "Impossibile leggere la proprietà 'appendChild' di undefined". Quindi meglio racchiudere il codice javascript all'interno del blocco di carico della finestra. esempio Dilruk

3

La mia idea è che è possibile utilizzare il plugin jQuery dform da github per creare moduli direttamente dando input come dati JSON.

Problemi correlati