2012-02-26 52 views
1

我想將一些html數據添加到div容器的末尾。 目前,我使用的innerHTML做到這一點:將輸入字段添加到div容器(javascript)

<script language="javascript"> 
var addid = 0; 

function addInput(id){ 
    var docstyle = document.getElementById('addlist').style.display; 
    if(docstyle == 'none') 
     document.getElementById('addlist').style.display = ''; 

    addid++; 

    var text = "<div id='additem_"+addid+"'><input type='text' size='100' value='' class='buckinput' name='items[]' style='padding:5px;' /> <a href='javascript:void(0);' onclick='addInput("+addid+")' id='addlink_"+addid+"'>add more</a></div>"; 

    document.getElementById('addlist').innerHTML += text; 
} 
</script> 

<div id="addlist" class="alt1" style="padding:10px;"> 
    New list items are added to the bottom of the list. 
    <br /><br /> 
</div> 

的問題是,這是在輸入字段中輸入的值被刪除一旦添加了另一個輸入字段。 如何添加內容並保留輸入的數據?

PS:我不使用jquery。

回答

4

innerHTML修改重置表單元素。請使用appendChild。看到這個演示http://jsfiddle.net/5sWA2/

function addInput(id) { 

    var addList = document.getElementById('addlist'); 
    var docstyle = addList.style.display; 
    if (docstyle == 'none') addList.style.display = ''; 

    addid++; 

    var text = document.createElement('div'); 
    text.id = 'additem_' + addid; 
    text.innerHTML = "<input type='text' value='' class='buckinput' name='items[]' style='padding:5px;' /> <a href='javascript:void(0);' onclick='addInput(" + addid + ")' id='addlink_" + addid + "'>add more</a>"; 

    addList.appendChild(text); 
} 
+0

謝謝了一堆。奇蹟般有效! – reggie 2012-02-26 18:39:49