我想实现一个表单,其中包含用于选择选项和组合框的复选框以对选择进行排序。我这样做了,http://jsbin.com/AmeWahI/1/ 它一直有效,直到我点击第三个复选框。所以,我想要的是当我点击一个复选框时,我想在当前选择的那个中选择这个选项。例如,如果我单击所有复选框,则所有组合框应显示1,2,3以进行排序。 如果我单击第一个和第三个复选框,则两个组合框都应显示1和2,因为只点击了两个元素。
答案 0 :(得分:1)
我修改过,请看这里
您需要使用此
替换第二个for循环for (var n=0; n<3; n++) {
var select = document.getElementById("slct"+n);
var length = select.options.length;
select.remove(0);
for (var m = 0; m < length; m++) {
select.options[m] = null;
}
}
答案 1 :(得分:0)
您可以在表单内查看复选框的数量,并根据您可以设置选择选项的值。
如果我检查了两个复选框1和3 ..我的学习顺序为2,你可以将选择框选项的值设置为2 ..
答案 2 :(得分:0)
好吧,当选中或取消选中任何复选框时,查找所有选中的复选框计数,清除所有下拉列表项目列表,并且仅在选中相应的复选框时才将项目添加到从1到总复选框计数的下拉列表中。
希望这会对你有所帮助......
答案 3 :(得分:0)
试试这个,
function enableDisable(bEnable, checkboxID) {
var id = checkboxID.replace("checkbox", "");
var checkedItems = new Array();
var inputElems = document.getElementsByTagName("input");
count = 0;
for (var i = 0; i < inputElems.length; i++) {
if (inputElems[i].type === "checkbox" && inputElems[i].checked === true) {
count++;
checkedItems.push(inputElems[i].id);
}
}
for (var k = 0; k < checkedItems.length; k++) {
var idk = checkedItems[k].replace("checkbox", "");
var select = document.getElementById("slct" + idk);
var length = select.options.length;
for (i = 0; i < length; i++) {
select.options[i] = null;
}
}
for (var j = 0; j < checkedItems.length; j++) {
for (var k = 0; k < checkedItems.length; k++) {
var id = checkedItems[j].replace("checkbox", "");
var combo = document.getElementById("slct" + id);
var option = document.createElement("option");
combo.remove(0);
option.text = "" + (k + 1);
option.value = "" + (k + 1);
try {
combo.add(option, null); //Standard
} catch (error) {
combo.add(option); // IE only
}
}
}
}
让我知道是否有任何疑虑