选中checkbox添加到select框中的问题.
想要实现如下功能:
1.页面有一组checkbox,其中一个有全选功能,另外有一个select框,一开始没有选项.
2.选中一个checkbox则select增加一选项,
即new Option(checkbox.id,checkbox.value).
把勾去掉的话,则select框中该选项也自动删除.
如果所有checkbox被选中,则"全选checkbox"自动打勾.
3."全选checkbox"的功能是:在选中所有checkbox的同时,在select框中生成对应的 一系列选项.反之,当"全选checkbox"的勾被去掉的同时,所有checkbox的勾被去掉,select框的所有选项也被删除.
现在的问题是,在点击"全选checkbox"时,select框没反应.请帮我看一下函数changeSel().
附上源文件:
<HTML>
<script>
function changeSel(id){
checkbox = document.getElementById(id);
sel = document.getElementById('buffer');
if(checkbox.checked == true ){
var o=new Option(checkbox.id,checkbox.value);
sel.add(o);
}
else{
for(i=0;i<sel.length;i++){
if(sel[i].value == checkbox.value)
sel.remove(i--);
}
}
}
function changeSelAll(){
sel = document.getElementById('buffer');
form = document.getElementById('do');
if(form.selAll.checked) {
for(i=0;i<form.length;i++) {
ifFind = new Boolean(false);
e=form.elements[i];
if(e.type=="checkbox" && e.name != "selAll" ){
for(j=0;j<sel.length;j++){
if( e.id==sel[j].id ){
ifFind = true;
break;
}
}
if(!ifFind){
var o=new Option(e.id,e.value);
sel.add(o);
}
}
}
}else{
for(i=0;i<sel.length;i++)
sel.remove(i--);
}
}
</script>
<BODY>
<form id=do >
<input type=checkbox id=id1 name=attriChecks value=value1 onclick="javascript: selOne('do');changeSel(this.id);"><br>
<input type=checkbox id=id2 name=attriChecks value=value2 onclick="javascript: selOne('do');changeSel(this.id);"><br>
<input type=checkbox id=id3 name=attriChecks value=value3 onclick="javascript: selOne('do');changeSel(this.id);"><br>
<input type=checkbox id=id4 name=attriChecks value=value4 onclick="javascript: selOne('do');changeSel(this.id);"><br>
<input type="checkbox" name="selAll" onclick="javascript: selAllItems('do');changeSelAll();">全选<br>
<select name=attriSel id=buffer size=10 multiple ></select>
</form>
</BODY>
<script>
function numChecked(f) {
form = document.getElementById(f);
j=0;
for(i=0;i< form.length;i++) {
e=form.elements[i];
if (e.type=="checkbox" && e.name != "selAll" && e.checked)
j++;
}
return j;
}
function numBoxes(f) {
form = document.getElementById(f);
j=0;
for(i=0;i< form.length;i++) {
e=form.elements[i];
if (e.type=="checkbox" && e.name != "selAll")
j++;
}
return j;
}
function selOne(f) {
form = document.getElementById(f);
if (numChecked(f) == numBoxes(f)) form.selAll.checked=true;
else form.selAll.checked=false;
}
function selAllItems(f) {
form = document.getElementById(f);
for(i=0;i< form.length;i++) {
e=form.elements[i];
if (form.selAll.checked) {
if (e.type=="checkbox" && e.name != "selAll" && !e.checked) e.checked=true;
} else {
if (e.type=="checkbox" && e.name != "selAll" && e.checked) e.checked=false;
}
}
}
function formSubmit(f) {
form = document.getElementById(f);
if (numChecked(f) == 0) {
alert("没有选项被选中!");
} else {
if (form.selAll.checked) {
if (confirm("所有选项都被选中了!\n确定提交?"))
form.submit();
} else {
if (confirm("确定提交?"))
form.submit();
}
}
}
</script>
</HTML>