【发布时间】:2021-06-05 03:43:03
【问题描述】:
情况如下:我有一个带有一些输入文本框的表单和一个在单击时调用add() 函数的按钮。这是 HTML 代码:
<div id="resultdiv" style="display: none" align="center">
<TEXTAREA id="resultcode" style="width: 100%; height: 70%"></TEXTAREA>
</div>
<div align="center" width="100%">
<form>
<input type="text" name="atrib" value="atrib name"><input type="text" name="val" value="default value"><br>
<div id="bar"></div>
<input type="button" value="Add" onclick="add();"><input type="button" value="Generate" onclick="gen();">
</form>
</div>
add() 函数将两个新的输入表单添加到 id 为 bar 的 de div 中。这工作没有任何麻烦,问题是如果我添加一个新文本框并写入一些与默认值不同的值,一旦我再次单击“添加”按钮,就会创建一个新文本框,但前一个文本框的值创建的文本框再次更改为默认值!!!
这是带有 add() 函数的 JavaScript 代码:
function add() {
//Create an input type dynamically.
var element = document.createElement("input");
var element2 = document.createElement("input");
//Assign different attributes to the element.
element.setAttribute("type", "text");
element.setAttribute("value", "atrib name");
element.setAttribute("name", "atrib");
element2.setAttribute("type", "text");
element2.setAttribute("value", "default value");
element2.setAttribute("name", "val");
// the div id, where new fields are to be added
var bar = document.getElementById("bar");
//Append the element in page (in span).
bar.appendChild(element);
bar.appendChild(element2);
bar.innerHTML += "<br>";
}
这里是整个应用程序的 jsfiddle:http://jsfiddle.net/3a1kojgn/
如果我在每个 add() 调用中创建全新的元素,我不明白为什么在添加另一个文本框时,之前动态添加的文本框的值会重置。有什么提示吗?
【问题讨论】:
-
我不能告诉你为什么,但是删除这一行
bar.innerHTML += "<br>";,它可以工作 -
哦,太好了!但是如果我删除该行,我会遇到新输入的格式错误(内联)的问题:(
-
是的,有格式错误的解决方案 - 请参阅下面的答案
标签: javascript html dom