2014-02-26 156 views
1

我有一个要求,单击按钮时添加文本框。 当我单击添加按钮将创建新的文本框但先前输入的文本框中的数据将被清除。我不想清除文本框中的数据,同时单击添加按钮。 我该如何解决这个问题?不想清除文本框,同时点击添加按钮

HTML

<tr id="div"></tr> 
<tr> 
<td> 
    <button type="button" class="btn btn-lg btn-info" onclick="generateRow();">Add</button> 
</td> 
</tr> 

JS

function generateRow() { 
    var d=document.getElementById("div"); 
    d.innerHTML+=" <input class='form-control' type='text' required autofocus name='year'/> "; 
} 
+0

''嗯......塞西n'est PAS UNE管? – bjb568

+0

@ bjb568我有很多paass uniuqe id的名字吗? –

+0

是的,但我的意思是,你正在调用“tr”“div”... – bjb568

回答

1
function generateRow() { 
    var i=0,j=0; 

    var d=document.getElementById("div"),input,value; 
    //var m=document.getElementById("div"); 
    var x=new Array(50); 
    while (i!=d.childNodes.length/2) 
    { 
    if (input = d.children[i]) {// If there's an input... 
     x[i]=input.value; // ...get the value 
    } 


    //d.children[i].value = value; 
    i++; 
    } 
    d.innerHTML += "<input class='form-control' type='text' required autofocus name='year'/> "; 
    // m.innerHTML += "<td><input type='button' required autofocus name='year' value='Remove'/> </td>"; 

    while(j!=i) 
     { 
    d.children[j].value = x[j]; 
     j++; 
     } 
} 
+0

哦,多个值。感谢编辑。 – bjb568

1

使用jQuery .append()到DIV添加到现有的内容

+0

-1 jQuery,undetailed,1-liner – bjb568

2

你可以使用像这在javascript中

function generateRow() { 
    var child="<input class='form-control' type='text' required autofocus name='year'/>"; 
    document.getElementById("div").appendChild(child); 
} 
0

使用jQuery稍微不同的答案。可能会为未来的用户

<html> 
<head> 
    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     function generateRow() { 
      $("#div").append("<input type='text' name='year'/><br/>"); 
     } 
    </script> 
</head> 
<body> 
    <table> 
     <div id="div"> 
      <!-- Buttons Go Here --> 
     </div> 
     <button type="button" onclick="generateRow();">Add</button> 
    </table> 
</body> 
</html> 

JSFiddle

1

是有益的尝试这种使用纯JavaScript

function generateRow() { 
    var d=document.getElementById("div"); 
    var f = document.createElement("input"); 
    f.name="year"; 
    d.appendChild(f); 
} 
相关问题