2012-01-16 71 views
1

我在網上發現this javascript,在您按下按鈕時添加了輸入按鈕。Javascript創建輸入問題

我改變了它,以便能夠選擇您創建的輸入類型而不是自動創建文本框。但它不起作用。我應該改變什麼?

function add(type) { 

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

    //Assign different attributes to the element. 
    element.setAttribute("type", "text"); 
    element.setAttribute("name", "goal[]"); 

    var foo = document.getElementById("fooBar"); 

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

} 

<INPUT type="button" value="Add" onclick="add(document.forms[0].element.value)"/> 

<span id="fooBar">&nbsp;</span> 

回答

1

DEMO

你的附加功能是正確的,但我認爲有些事情是這裏 - document.forms[0].element.value

onclick="add(document.forms[0].element.value)" 

打破嘗試將其更改爲

onclick="add()" 

既然你不無論如何使用該類型參數

+0

我怎麼會還每個輸入之後添加一個換行符,使他們變得低於對方? – 2012-01-16 17:31:49

+1

我想你會想做:'document.createElement(「br」);'並將它插入你想要換行的地方 – 2012-01-16 17:37:19

+0

我會把它放在函數add()中嗎?這沒有用。我應該將它與onclick一起添加嗎? – 2012-01-16 17:43:14

0

某些瀏覽器不允許在元素上動態設置name屬性。

您可以指定在傳遞給createElement()標記的name屬性來解決此問題:

var element = document.createElement("<input name='goal[]' type='text' />");