我已经在此网站上进行了很多搜索,并提出了我想一起使用的两种方法。根据其他编程经验,我似乎需要嵌套正在使用的功能。
我要一起使用的两个功能是
- 创建基于儿童总数的动态输入和
- 一旦根据创建儿童数量创建动态字段的自动更新年份的选择列表。
根据我有限的JavaScript经验,我对此有些挣扎,并且可以使用一点帮助。
这是我到目前为止所拥有的代码,并且为每个孩子字段生成的年度"选择列表"存在问题。
function addinputFields() {
var number = document.getElementById("child").value;
while (container.hasChildNodes()) {
container.removeChild(container.lastChild);
}
for (i = 0; i < number; i++) {
container.appendChild(document.createTextNode("Child " + (i + 1)));
var input = document.createElement("input");
var min = new Date().getFullYear() - 40;
cur = new Date().getFullYear();
select = document.getElementById('year');
for (var a = min; a <= cur; a++) {
var opt = document.createElement('option');
opt.value = a;
opt.text = a;
select.appendChild(opt);
}
input.type = "text";
input.name = "Child" + i;
container.appendChild(input);
}
}
<div>
<label for="child">Number of Children:</label>
<input id="child" type="text" name="child" value="" size="3" style="margin-left:15px;text-align:center;">
</div>
<div>
<button class="kb" onclick="addinputFields()">Add</button>
</div>
<p>Input Kindergarten Start Years</p>
<div id="container">
</div>
<select id="year">
我从您的问题中可以理解的是,您在选定的年份列表中面临问题。因此,我对您的代码进行了一些更改,如果您正在寻找的话,它将有所帮助。
function addinputFields() {
var number = document.getElementById("child").value;
while (container.hasChildNodes()) {
container.removeChild(container.lastChild);
}
for (i = 0; i < number; i++) {
container.appendChild(document.createTextNode("Child " + (i + 1)));
var input = document.createElement("input");
var selectList = document.createElement("select");
selectList.id = "year"+(i+1);
var min = new Date().getFullYear() - 40;
cur = new Date().getFullYear();
select = document.getElementById('year');
for (var a = min; a <= cur; a++) {
var opt = document.createElement('option');
opt.value = a;
opt.text = a;
selectList.appendChild(opt);
}
input.type = "text";
input.name = "Child" + i;
container.appendChild(input);
container.appendChild(selectList);
}
}
我能够调整您的代码调整,现在它正是我想要的...
再次感谢您的所有帮助!!!
function addinputFields() {
var number = document.getElementById("child").value;
while (container.hasChildNodes()) {
container.removeChild(container.lastChild);
}
for (i = 0; i < number; i++) {
container.appendChild(document.createTextNode("Child " + (i + 1)));
var input = document.createElement("input");
var selectList = document.createElement("select");
selectList.id = "year"+(i+1);
var min = new Date().getFullYear() - 40;
cur = new Date().getFullYear();
select = document.getElementById('year');
for (var a = min; a <= cur; a++) {
var opt = document.createElement('option');
opt.value = a;
opt.text = a;
selectList.appendChild(opt);
}
container.appendChild(selectList);
}
}
<div>
<label for="child">Number of Children:</label>
<input id="child" type="text" name="child" value="" size="3" style="margin-left:15px;text-align:center;">
</div>
<div>
<button class="kb" onclick="addinputFields()">Add</button>
</div>
<p>Input Kindergarten Start Years</p>
<div id="container">
</div>