2010-07-21 10 views
13

Wie kann ich über das Erstellen eines Formulars mit Javascript gehen?Dynamisch erstellen Sie ein HTML-Formular mit Javascript

Ich habe keine Ahnung, wie es weiter geht, ich habe mein Gesicht gegooglet, aber es gibt nichts Definitives, das mir zeigen kann, wie man Formen dynamisch damit erstellt.

Vielen Dank im Voraus!

+0

Grundsätzlich, genau wie Sie andere Elemente mit JavaScript erstellen, mit 'createElement' oder jQuery. Kannst du jQuery benutzen? –

+0

Ja, ich kann jQuery verwenden, aber nicht zu familiär. – Odyss3us

Antwort

5

möchte ich denke, eine komplette Lösung Posting zu viel wäre, aber überprüfe jQuery dafür. Ich gebe Ihnen einen Tipp, jQuery .append() könnte sehr nützlich für Sie sein :)

0

Meine Empfehlung wäre, die underscore.js Bibliothek zu bekommen und ihre template Funktion zu verwenden, um Ihre Formulare zu erstellen. (Wenn der Unterstrich zu groß für Sie ist, kann die Template-Funktion auch alleine stehen).

3

Ja, Sie jede Menge html einschließlich Formen, indem Sie JavaScript erstellen können,

Vielleicht: `

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

Unsere Javascript könnte wie folgt aussehen:

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

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

try this .. .

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(); 

, die ein Formular mit DIV innen wird es schaffen ist ...

25

Sie könnten so etwas wie dies versuchen:

Der HTML-Teil:

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

<body> 
</html> 

Die 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> 

Diese So können Sie beliebig viele Elemente dynamisch erstellen.

+0

Diese Lösung hat super funktioniert. Vielen Dank! –

+0

Wenn das DOM zum Zeitpunkt der Ausführung des Skripts nicht geladen wird, erhalten Sie möglicherweise einen Fehler - In meinem Fall habe ich "Eigenschaft nicht lesen 'appendChild' von undefined". Also besser den JavaScript-Code im Fenster-onload-Block zu umschließen. Z. B. Dilruk

3

Meine Idee ist, dass Sie das JQuery-Plugin dform von Github verwenden können, um Formulare direkt zu erstellen, indem Sie json-Daten eingeben.

Verwandte Themen