【发布时间】:2020-07-04 12:18:17
【问题描述】:
我的起始 html 如下所示:
<label> Names: </label><br>
<input type="text" class="form-control name" placeholder="name1" id="name1" name ="name1"><br>
我有一个捕获 html 的变量:
var html = "<label> Names: </label><br><input type=\"text\" class=\"form-control name\" placeholder=\"name1\" id=\"name1\" name =\"name1\"><br>"
然后我有一个 onchange 运算符,当第一行中有文本时,它会执行几个函数。 .onchange 第一次被很好地拾取并运行后续功能。我最后多了一行:
for (n = 1; n < inputLength+1 ; ++n) {
var test2 = document.getElementById(dude+n);
test2.onchange = forFunction
}
function forFunction() {
for (m = 1; m < inputLength+1 ; ++m) {
var test = document.getElementById(dude+m)
if (test.value != "") {
var txt = "<input type=\"text\" class=\"form-control name\" placeholder="+dude+(m+1)+" id="+dude+(m+1)+" name="+dude+(m+1)+"><br>";
document.getElementById('group_names').innerHTML = updateHTML(txt);
//function updateHTML(txt)
}
}
}
var html = "<label> Names: </label><br><input type=\"text\" class=\"form-control name\" placeholder=\"name1\" id=\"name1\" name =\"name1\"><br>"
function updateHTML(txt) {
html = html + txt;
return html;
}
问题是,在完成所有这些之后,我最终得到了两个所需的输入行:name1 和 name2。但是,当我第二次在这些字段中输入文本时,不会拾取 .onchange。但是当我检查和查看 html 时,这些元素在 html 中。
还有,当我
console.log(inputFormDiv.getElementsByTagName('input').length);
在我第一次运行函数后(在我第一次更改输入字段中的值时),输入的长度从 1 增加到 2,以便正确识别,而不是 .onchange。
想法?
【问题讨论】:
标签: javascript onchange innerhtml getelementbyid