2009-09-07 16 views

risposta

0

Il migliore sarebbe collegare un evento allo onclick del pulsante, che imposterà la visibilità di un div a inline. Questo è il modo migliore che posso vedere per questo, considerando la flessibilità e la robustezza.

Avere un codice look here per esempio.

1
<script> 
function add() 
{ 
    document.getElementById("place").innerHTML="<input type='text' value=''>" 
} 
</script> 
<input type="button" value="clickMe" onClick="add();"> 
<div id="place"></div> 
+1

Chi ha votato per questo, non è a conoscenza dell'impatto dell'utilizzo di innerHTML. –

-1

provare questo

<html> 
<head> 
<title>Dynamic Form</title> 
<script language="javascript" type="text/javascript" > 
function changeIt() 
{ 

createTextbox.innerHTML = createTextbox.innerHTML +"<br><input type='text' name='mytext' >" 

} 
</script> 
</head> 
<body> 

<form name="form"> 
<input type="button" value="clickHere" onClick="changeIt()"> 
<div id="createTextbox"></div> 
</form> 
</body> 
</html> 
+1

Chi ha votato per questo, non è a conoscenza dell'impatto dell'utilizzo di innerHTML. –

+0

-1. Masticare con 'innerHTML' quando un semplice' appendChild() 'funzionerebbe è inutilmente lento, e cosa sta succedendo con la variabile' i'? Non viene neanche usato perché la variabile non è espansa nella stringa 'innerHTML', quindi il tuo HTML diventa' name = 'mytext'' seguito da elementi inutili che il browser non riesce a capire. –

+0

Scrivere in innerHTML una volta è abbastanza giusto; + = su innerHTML è sempre un errore. – bobince

20

Se si sostituisce l'innerHTML, i valori immessi in precedenza viene cancellato, per evitare che, è possibile aggiungere gli elementi di input di programmazione:

var input = document.createElement('input'); 
input.type = "text"; 
//...  
container.appendChild(input); 

Controllare this esempio.

+1

Risposta corretta - perché innerHTML sostituirà il contenuto dell'elemento HTML specificato con il valore innerHTML appena definito. –

1
<script> 
function add() 
{ 
    var inpt = document.getElementById('input_template'); 
    inpt.parentNode.appendChild(inpt.cloneNode(false)); 
} 
</script> 

<input type="button" onclick="add();"> 

set id = input_template ad una delle caselle di testo predefiniti

+1

Avrei creato una funzione separata anziché inline e avrei usato i CSS per mantenere gli stessi stili, ma questo sembra un modo intelligente per farlo, e sembra che funzionerebbe. –

+0

FYI: una migliore formattazione potrebbe aiutare tutti. –

9

funzione JavaScript

function add() { 

//Create an input type dynamically. 
var element = document.createElement("input"); 

//Create Labels 
var label = document.createElement("Label"); 
label.innerHTML = "New Label";  

//Assign different attributes to the element. 
element.setAttribute("type", "text"); 
element.setAttribute("value", ""); 
element.setAttribute("name", "Test Name"); 
element.setAttribute("style", "width:200px"); 

label.setAttribute("style", "font-weight:normal"); 

// 'foobar' is the div id, where new fields are to be added 
var foo = document.getElementById("fooBar"); 

//Append the element in page (in span). 
foo.appendChild(label); 
foo.appendChild(element); 
} 

parte Html,

<button id="button" value="Add" onClick:"javascript:add();"> 

E, il suo fare!

+0

Qui puoi impostare gli attributi per la casella di testo. come proprietà CSS, valori, id, ecc –

0
<!DOCTYPE html> 
<html> 
<body> 
<h1>My First Web Page</h1> 
<p>My first paragraph.</p> 
<button type="button" onclick="myFunction()">Click me!</button> 
<script> 
var count =0; 
function myFunction() { 
count++ 
    document.write('Lable1'); 
    document.write('<input type="text" name="one+count">'); 
    document.write('Lable2'); 
    document.write('<input type="text" name="two+count">'); 

    document.write('Lable3'); 
    document.write('<input type="text" name="three+count">'); 

    document.write('Lable4'); 
    document.write('<input type="text" name="four+count">'); 

    document.write(count); 

    } 
    </script> 

    </body> 
    </html> 
Problemi correlati