js中如何实现多个复选框全选

js中如何实现多个复选框全选,第1张

CheckBox复选框JS实现全选全不选功能,很简单,就只需插入一小段js函数就行了。。。

<script language="javascript">
  function cli(Obj)
  {
  //获取控制其它复选框的对象obj
  var collid = documentgetElementByIdx_x("all")
  //获取需要全选,全不选功能的所有复选框
  var coll = documentgetElementsByName(Obj)
  //如果obj被选中,则全选
  if (collidchecked){
     //循环设置所有复选框为选中状态
     for(var i = 0; i < colllength; i++)
       coll[i]checked = true;
  }else{//取消obj选中状态,则全不选
     //循环设置所有复选框为未选中状态
     for(var i = 0; i < colllength; i++)
       coll[i]checked = false;
  }
  }
  </script>

----------------------------------------------------

下面是一组CheckBox复选框html代码

----------------------------------------------------

<input name='多选名称' type='checkbox' value='' id="all"  onclick="cli('多选项名称');">  全选
<input name='多选项名称' type='checkbox' value='' >  A
<input name='多选项名称' type='checkbox' value='' >  B
<input name='多选项名称' type='checkbox' value='' >  C
<input name='多选项名称' type='checkbox' value='' >  D
<input name='多选项名称' type='checkbox' value='' >  E
<input name='多选项名称' type='checkbox' value='' >  F

----------------------------------------------------

这样做不方面吧,比如现在我选择了slt1的某项,之后我后悔了,想选择slt2(或其它的),我得先将slt1选为空后才可以 *** 作其它slt,当然了也可以刷新页面重新填(但前面填的信息都没了)。
建议改为:不管是选择哪个slt,都将值写到一个公共的地方,如文本框中或隐藏域中,这样后面选择的会覆盖前面的内容,也就达到了任何时候都只能选择一项的目的。

<body>
<font size="6" color="red">兴趣爱好:</font><br />
<input type="checkbox" name="hobby" value="basketball"/>篮球
<input type="checkbox" name="hobby" value="football"/>足球
<input type="checkbox" name="hobby" value="tabletennis"/>乒乓球
<input type="checkbox" name="hobby" value="volleyball"/>羽毛球
<input type="checkbox" name="hobby" value="swiming"/>游泳
<script>
var i=0;
var box=documentgetElementsByName("hobby");
for( var j=0;j<boxlength;j++){
box[j]onclick=function(){
if(thischecked){
i++;
if(i>=3){
for(k=0;k<boxlength;k++){
if(!box[k]checked){
box[k]disabled=true;
}
}
}
}else{
i--;
for(k=0;k<boxlength;k++){
if(box[k]!=this){
box[k]disabled=false;
}
}
}
}
</script>
</body>

我写了个例子,你试试:
<html>
<head>
<title>jsTest</title>
</head>
<body>
<select id="sel"><option>a</option><option>b</option></select>
<input type="text" id="txt">
<input type="button" value="show" onclick="show()">
</br>
<p id="p1">
下拉框和文本框内容将显示在这里:
</br>
</p>
<script>
function show()
{
var node = documentcreateTextNode(seloptions[selselectedIndex]value +
"," + txtvalue);
p1removeChild(p1lastChild);
p1appendChild(node);
}
</script>
</body>
</html>

<!DOCTYPE html>

<html xmlns=">

<head>

<script id="script" type="text/javascript" src=">

</head>

<body>

<select id="c">

<option value="1">1个</option>

<option value="2">2个</option>

<option value="3">3个</option>

</select>

<input type="checkbox" name="">

<input type="checkbox" name="">

<input type="checkbox" name="">

<input type="checkbox" name="">

<input type="checkbox" name="">

<script type="text/javascript">

var $cbs=$('input:checkbox');

var cc = 0;

$('#c')change(function(){

$cbsprop('checked',false);

cc = 0

});

$cbsclick(function(){

var sc = parseInt($('#c option:selected')val());

if($(this)prop('checked')){

if(cc+1>sc)

return false;

cc++;

}else{

cc--;

}

});

</script>

</body>

</html>

Hi,你的 *** 作就是当已经选择过的情况下你需要删除掉数组的相应值。
我帮你改写了一下,数组值需要存储选框的下标就可以了的。
<script language="javascript">
var sel = [];
function OnClick() {
var i_ts_desc = documentgetElementById("i_ts_desc");
var index = i_ts_descselectedIndex;
var iHas = -1;
selsort();
for (var i = 0; i < sellength; i++) {
if (sel[i] == index) {
iHas = i;
} else {
i_ts_desc[sel[i]]selected = true;
}
}
if (iHas == -1) {
selpush(index);
i_ts_desc[index]selected = true;
} else {
selsplice(iHas, 1);
i_ts_desc[index]selected = false;
}
}
</script>
<select id="i_ts_desc" multiple="multiple" onclick="OnClick();" >
<option value="A">0</option>
<option value="B">1</option>
<option value="C">2</option>
<option value="D">3</option>
<option value="E">4</option>
<option value="F">5</option>
</select>


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12718081.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-27
下一篇2025-08-27

发表评论

登录后才能评论

评论列表(0条)

    保存