Javascript InnerHTML在添加多个文本框时删除该值

Javascript InnerHTML在添加多个文本框时删除该值,javascript,php,html,Javascript,Php,Html,我在跟踪 添加动态文本框。但我的问题是,当我在第二个文本框中插入值,然后按下下一个文本框的按钮时,第二个框中的值将被擦除。所以我不能使用提交表单。有没有办法解决这个问题 HTML 代码-1 自定义标记-1 供应商-1 请选择。。 JS var i=1; 函数插入() { new_div.innerHTML=new_div.innerHTML+“代码-”+(i+1)+”; new_div.innerHTML=new_div.innerHTML+“自定义标记-”+(i+1)+”; new_di

我在跟踪

添加动态文本框。但我的问题是,当我在第二个文本框中插入值,然后按下下一个文本框的按钮时,第二个框中的值将被擦除。所以我不能使用提交表单。有没有办法解决这个问题

HTML


代码-1
自定义标记-1
供应商-1
请选择。。
JS


var i=1;
函数插入()
{
new_div.innerHTML=new_div.innerHTML+“代码-”+(i+1)+”;
new_div.innerHTML=new_div.innerHTML+“自定义标记-”+(i+1)+”;
new_div.innerHTML=new_div.innerHTML+“供应商-”+(i+1)+“请选择…”;
new_div.innerHTML=new_div.innerHTML+“

”; //document.getElementById('code2')。value=document.getElementById('code2')。value; i++; }
试试这个:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script>
            var txtBId=1;
            function addTB(){
                var div=document.getElementById("tbSet");
                var txt=document.createElement("input");
                txt.setAttribute("type","text");
                txt.setAttribute("id","tb"+(txtBId++));  
                // div.innerHTML=div.innerHTML +"<br>";    <------------------  
                var br=document.createElement("br");
                div.appendChild(br);         
                div.appendChild(txt);
            }
        </script>
    </head>
    <body>
        <form id="myform">

            <div id="tbSet">

            </div>
            <input type="button" value="New TextBox" onclick="addTB();">
            <input type="submit" value="Submit">

        </form>

    </body>
</html>

var txtBId=1;
函数addTB(){
var div=document.getElementById(“tbSet”);
var txt=document.createElement(“输入”);
setAttribute(“类型”、“文本”);
setAttribute(“id”,“tb”+(txtBId++);

//div.innerHTML=div.innerHTML+“
”;不要通过innerHTML添加文本框。如果添加文本框,3个数据后将被删除。请使用createElement执行此操作,然后添加子项

 function addTB(){
                var div=document.getElementById("tbSet");
                var txt=document.createElement("input");
                txt.setAttribute("type","text");
                txt.setAttribute("id","tb"+(txtBId++));                
                var br=document.createElement("br");
                div.appendChild(br);         
                div.appendChild(txt);
     }
对于下拉列表:

var slId=1;
            function options(name,value){

                 var o=document.createElement("option");
                 o.setAttribute("value",value);
                 o.innerHTML=name;
                 return o;

            }
            function addDropDown(){
                  var div=document.getElementById("tbSet");
                var sl=document.createElement("select");                 
                 var o=options("Hello","hi");            
                 sl.setAttribute("id","sl"+(slId++));
                 sl.appendChild(o);                 
                 div.appendChild(sl);
            }

发布您的代码。您是分配innerHTML还是将其串联?这与上面链接的答案相同。我分配的是innerHTML,而不是串联。因此,我认为当我按下按钮innerHTML仍将刷新时,在此处查看代码比跟随链接更容易。如果您分配innerHTML,它将替换已存在的所有内容重新使用innerHTML+=[动态内容]我已经更新了我的代码。谢谢你的回复。我的代码仍然有问题。如果我添加了三个或更多的文本框,在提交之前,所有文本框中的数据都会被删除,上面的代码是有效的。但是我想知道如何从我的代码中添加动态下拉菜单?谢谢你的回答。我不熟悉createElement.L让我试试。我们可以用这个createElement创建表、动态下拉框吗?createElement可以用于任何Html标记。如果你不介意,请告诉我如何处理while循环?我正在搜索它。但没有得到确切的答案!嗨,php在服务器端运行。所以将vedor信息存储在一些javascript数组中。然后使用thar数组,以while循环格式。
 function addTB(){
                var div=document.getElementById("tbSet");
                var txt=document.createElement("input");
                txt.setAttribute("type","text");
                txt.setAttribute("id","tb"+(txtBId++));                
                var br=document.createElement("br");
                div.appendChild(br);         
                div.appendChild(txt);
     }
var slId=1;
            function options(name,value){

                 var o=document.createElement("option");
                 o.setAttribute("value",value);
                 o.innerHTML=name;
                 return o;

            }
            function addDropDown(){
                  var div=document.getElementById("tbSet");
                var sl=document.createElement("select");                 
                 var o=options("Hello","hi");            
                 sl.setAttribute("id","sl"+(slId++));
                 sl.appendChild(o);                 
                 div.appendChild(sl);
            }