我試圖創建一個頁面,用戶可以通過添加額外的div或嵌套的div(儘可能深的層數)來自定義表單以滿足他們的需求。在每個div中,我想要有文本輸入和一個按鈕,在同一級別添加另一個div,並在其中嵌入一個div。兩個div都應該有一個文本輸入和一個按鈕來完成同樣的事情。有沒有辦法動態創建嵌套的div onclick?
但是我有點卡住了。當我嘗試創建一個嵌套的div時,我總是最終將其添加到最底層而不是其父層。
<html>
<script type="text/javascript">
var counter = 1;
function addNode() {
var newDiv = document.createElement('div');
counter++;
newDiv.innerHTML = "Entry " + counter + " <br><input type='text' name='myInputs'>";
document.getElementById("dynamicInput").appendChild(newDiv);
var newButton = document.createElement('button');
newButton.type = "button";
newButton.onclick = addSub;
document.getElementById("dynamicInput").appendChild(newButton);
}
function addSub() {
var newDiv = document.createElement('div');
counter++;
newDiv.innerHTML = "Entry " + counter + " <br><input type='text' name='myInputs' style='margin:10px'>";
document.getElementById("subInput").appendChild(newDiv);
}
</script>
<form class="form" method="POST">
<div id="dynamicInput" name="dynamicInput" multiple="multiple">
Entry 1<br><input type="text" name="myInputs">
<div id="subInput" name="subInput" multiple="multiple">
<input type="button" value="add nested" onClick="addSub();">
</div>
</div>
<input type="button" value="Add another text input" onClick="addNode();" >
<input type="submit" value = "answer" multiple="multiple"/>
</form>
</html>
你能提供一個小提琴嗎? –
'addSub'似乎沒有添加任何按鈕。我相信你想重新組織你的代碼,以便兩個點擊處理程序調用一些函數來創建div。 –
然後,請注意,無論使用哪個按鈕調用它,addNode都執行完全相同的操作。還要注意,嵌套結構是短暫的:這種形式就是將所有輸入發佈到服務器的平面列表中。 –