2015-03-03 73 views
-2

我正在嘗試創建一個動態表單,其中用戶可以爲其他輸入添加更多字段。使用Javascript添加標籤和Div內部AppendChild

當用戶點擊此按鈕:

<input style="font-size=12px; width:170px;" name="add" type="button" id="add" class='btn-style'/> 

的形式附加組將在該區域中顯示待:

<div id="collegediv"></div> 

使用此腳本:

document.getElementById('add').onclick = function() { 

    var collegediv = document.getElementById('collegediv'), 
    inputatt = "form-control input-sm", 
    firstdivatt = "form-group", 
    div = document.createElement('div'); 
    div.setAttribute("class","col-sm-5"); 
    var div2 = document.createElement('div'); 
    div2.setAttribute("class","form-group"); 
    var label = document.createElement('label'); 
    label.setAttribute("class","col-sm-3 control-label input-sm"); 

    var input = document.createElement('input'); 
    collegediv.setAttribute("class",firstdivatt); 
    input.type = "text"; 
    input.setAttribute("name", "college[]"); 
    input.setAttribute("placeholder","Name of College/University"); 
    input.setAttribute("class", inputatt); 

    div.appendChild(input); 
    div2.appendChild(label); 
    div2.appendChild(div); 
    collegediv.appendChild(div2); 

}; 

的流腳本是

  • 附加一個textboxdiv variable
  • 附加一個labeldiv2 variable
  • 附加一個divdiv2 variable內也
  • 然後追加div2collegediv DIV

我還使用內在這個過程中引導,所以<div>的造型就是這樣。

我的問題是它沒有格式化我認爲應該輸出的方式。

輸出/ HTML應該是這樣的:

<div id="collegediv"> 
    <div class="form-group"> 
    <label for="college" class="col-sm-3 control-label input-sm"></label> 
    <div class="col-sm-5"> 
     <input type="text" name="college[]" class="form-control input-sm" placeholder="Name of College/University" required> 
    </div> 
    </div> 
</div> 

但這似乎並沒有被輸出。我的猜測是在div2內追加labeldiv是問題所在。這就像他們有衝突或覆蓋labeldiv一旦你將它追加div2內。誰能幫我這個。謝謝。

+0

腳本的輸出是一樣的,你需要的接受標籤不爲一屬性? – slashsharp 2015-03-03 08:52:25

+0

@Syahrul最後一個html樣本是我想要的輸出。但這似乎不是輸出。 – 2015-03-03 08:59:36

+0

Your sample =使用腳本的html輸出,但您可以添加的一些屬性除外。 – slashsharp 2015-03-03 10:02:05

回答

2

此輸出你說什麼你在輸出/ HTML想應該是這樣的:

document.getElementById('add').onclick = function() { 

    var collegediv = document.getElementById('collegediv'); 

    // Make first div  
    var div_form_group = document.createElement('div'); 
     div_form_group.setAttribute("class","form-group"); 

    // Make label 
    var label = document.createElement('label'); 
     label.setAttribute('for','college') 
     label.setAttribute('class','col-sm-3 control-label input-sm'); 

    // Make inner div 
    var div_inner = document.createElement('div'); 
     div_inner.setAttribute('class','col-sm-5'); 

    // Make input 
    var input = document.createElement('input'); 
     input.type = 'text'; 
     input.setAttribute('name', 'college[]'); 
     input.setAttribute('class', 'form-control input-sm'); 
     input.setAttribute('placeholder','Name of College/University'); 
     input.setAttribute('required','required'); 

    // Attach elements 
    div_inner.appendChild(input); 
    div_form_group.appendChild(label); 
    div_form_group.appendChild(div_inner); 
    collegediv.appendChild(div_form_group); 

}; 
+0

它看起來像我的帖子一樣,只是更清晰,具有不同的變量名稱。 – 2015-03-03 09:19:36

+0

就是這樣。雖然,你的代碼做了一些不符合你所期望的輸出的東西。這些是:額外的類'form-group'加到'#collegediv',在你的'