Javascript InnerHTML在添加多个文本框时删除该值
我在跟踪 添加动态文本框。但我的问题是,当我在第二个文本框中插入值,然后按下下一个文本框的按钮时,第二个框中的值将被擦除。所以我不能使用提交表单。有没有办法解决这个问题 HTMLJavascript 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
代码-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);
}