选中checkbox添加到select框中的问题. if(ifFind){ var o=new Option(e.id,e.value); sel.add(o); }即可 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if (e.type=="checkbox" && e.name != "selAll" && !e.checked) e.checked=true; 不会触发click事件。 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;changeSel(e.id); } } else { if (e.type=="checkbox" && e.name != "selAll" && e.checked) e.checked=false; } }} to net_lover(孟子E章): 好像不对吧to emu(ston) : 你的方法是正确的,但我不明白为什么我写的 changeSelAll()不起作用 将你的ifFind = new Boolean(false);改为ifFind = false; 呵呵..觉得你的问题很有趣... 所以我也花了点时间写了一个.代码比较烂.. 各位高手莫笑. ^_^<BODY><form id=dof ><input type=checkbox id=id1 name=attriChecks value=value1 ><br><input type=checkbox id=id2 name=attriChecks value=value2 ><br><input type=checkbox id=id3 name=attriChecks value=value3 ><br><input type=checkbox id=id4 name=attriChecks value=value4 ><br><input type="checkbox" name="selAll">全选<br><select name=attriSel id=buffer size=10 multiple ></select></form></BODY><script>var form=document.all.dof,sel=form.buffer,cks=form.attriChecks;for(i=0;i<form.length;i++){ if(form[i].type=='checkbox'){ form[i].onclick=function (){addItem(this)}; if(form[i].name=="selAll") form[i].onclick=function (){selAll(this)}; }}function addItem(obj){ if(obj.name!="selAll"){ if(obj.checked){ sel.add(new Option(obj.id,obj.value)); }else{ for(i=0;i<sel.length;i++){if(sel[i].value == obj.value) sel.remove(i--); } } }var cCount=0;for(i=0;i<cks.length;i++){(cks[i].checked)?cCount++:cCount=0;}form.selAll.checked=(cCount==cks.length)?true:false;}function selAll(obj){for(i=0;i<cks.length;i++)if(obj.checked){ if(!cks[i].checked) cks[i].checked=true,sel.add(new Option(cks[i].id,cks[i].value));;}else{cks[i].checked=false;sel.length=0;}}</script> 哦.. addIteam 里的那个判断可以不要...因为obj.name 根本不可能等于selAll . :)if(obj.name!="selAll"){ .... } to freefalcon(心宇) : 我写的最初版本就是ifFind = false;也不行,你试试先勾上一个checkbox,再勾"全选",看看select框发生了什么. 那是因为你还有一处地方写错了,changeSelAll()函数中的if( e.id==sel[j].id )应为if( e.id==sel[j].text)select中显示出来的是text属性,另一个用于传值的是value属性,而不是id 其实我写的是错的,没有仔细看。你既然有changeSelAll就不用改selAllItems了。不过既然这两个函数都只在同一个地方调用,为什么不只用一个呢?此外do是保留字,不要用来做form的id。 to freefalcon(心宇) : 我太粗心了,呵呵,没发现这个错误 :)to emu(ston) : 写在末尾的几个函数是通用的,还要用于其他页面.感谢各位的指点!谢谢! Jquery的validate验证 关于添加css样式的问题 javascript 网站流量统计 代码 html路径问题 一个小问题 脑壳都大了,找这个问题找了一晚上 把IE的安全级别设为最高,网页就能浏览了 js 验证上传图片的大小 求助编码转换问题 请教:js特效如何实现。示例:http://cssgm.ev991.com/vc/search.php?y=1000&dname=%C0%EE cpplus(百合)看这里 javascript中id 和name 有什么区别? 如下cgi包含javascript?
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;changeSel(e.id);
}
} else {
if (e.type=="checkbox" && e.name != "selAll" && e.checked) e.checked=false;
}
}
}
好像不对吧to emu(ston) :
你的方法是正确的,但我不明白为什么我写的 changeSelAll()不起作用
ifFind = false;
代码比较烂.. 各位高手莫笑. ^_^<BODY>
<form id=dof >
<input type=checkbox id=id1 name=attriChecks value=value1 ><br>
<input type=checkbox id=id2 name=attriChecks value=value2 ><br>
<input type=checkbox id=id3 name=attriChecks value=value3 ><br>
<input type=checkbox id=id4 name=attriChecks value=value4 ><br><input type="checkbox" name="selAll">全选<br>
<select name=attriSel id=buffer size=10 multiple ></select>
</form>
</BODY><script>
var form=document.all.dof,sel=form.buffer,cks=form.attriChecks;for(i=0;i<form.length;i++){
if(form[i].type=='checkbox'){
form[i].onclick=function (){addItem(this)};
if(form[i].name=="selAll") form[i].onclick=function (){selAll(this)};
}
}function addItem(obj){
if(obj.name!="selAll"){
if(obj.checked){
sel.add(new Option(obj.id,obj.value));
}else{
for(i=0;i<sel.length;i++){if(sel[i].value == obj.value) sel.remove(i--);
}
}
}
var cCount=0;
for(i=0;i<cks.length;i++){
(cks[i].checked)?cCount++:cCount=0;
}
form.selAll.checked=(cCount==cks.length)?true:false;
}function selAll(obj){
for(i=0;i<cks.length;i++)
if(obj.checked){
if(!cks[i].checked) cks[i].checked=true,sel.add(new Option(cks[i].id,cks[i].value));;
}else{
cks[i].checked=false;
sel.length=0;
}}
</script>
selAll . :)if(obj.name!="selAll"){ .... }
我写的最初版本就是ifFind = false;也不行,你试试先勾上一个checkbox,再勾"全选",看看select框发生了什么.
select中显示出来的是text属性,另一个用于传值的是value属性,而不是id
我太粗心了,呵呵,没发现这个错误 :)to emu(ston) :
写在末尾的几个函数是通用的,还要用于其他页面.感谢各位的指点!谢谢!