四个复选框 一个提交按钮,我想问问 选择value=ck4的时候 全部选上 当 value=ck3的时候value=ch3 value=ck2 value=ck1的checkboxe被选上 当value=ck2的时候同理 我想根据 checkbox的value值来判断,不根据checkbox是第几个来判定,因为在我那个程序里 checkbox的位置是不固定了 是会变的 所以我想只能根据value来判定吧 求大侠指点 用Jquery或者JS都行,我今天自己用juqery写了,我是就是根据根据我上面说的条件判定的虽然能实现但有问题 取消选择的时候只能从第四个开始取消 求大侠们指教指教
<input type="checkbox" name="CHK" value="ck1"/>
<input type="checkbox" name="CHK" value="ck2"/>
<input type="checkbox" name="CHK" value="ck3"/>
<input type="checkbox" name="CHK" value="ck4"/>
<input type="checkbox" name="CHK" value="ck1"/>
<input type="checkbox" name="CHK" value="ck2"/>
<input type="checkbox" name="CHK" value="ck3"/>
<input type="checkbox" name="CHK" value="ck4"/>
<input type="checkbox" name="CHK" value="ck4"/>4
<input type="checkbox" name="CHK" value="ck1"/>1
<input type="checkbox" name="CHK" value="ck2"/>2
.............以下只是测试
<input type="checkbox" name="CHK" value="ck5"/>5
<input type="checkbox" name="CHK" value="ck6"/>6
<input type="checkbox" name="CHK" value="ck7"/>7
<script type="text/javascript">
var chk=document.getElementsByName("CHK");
for(var i=0;i<chk.length;i++){
(function(n){
chk[n].onclick=function(){
var i=this.value.replace(/[^\d]/g,"");
for(var l=0;l<chk.length;l++){
var b=chk[l].value.replace(/[^\d]/g,"");
if(this.checked&&i>b){
chk[l].checked=true;
}
if(!this.checked&&i<b){
chk[l].checked=false;
}
}
}
})(i);
}
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title><script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script language="javascript">
$(function(){
$(':checkbox').click(function(){
//获取当前点击复选框前面的同辈复选框元素的个数
var count = $(this).prevAll(':checkbox').size();
if($(this).get(0).checked){
for(var i = 0;i < count;i++){
$(':checkbox').get(i).checked = true;
}
}
});
})
</script>
</head>
<body>
<input type="checkbox" />one
<input type="checkbox" />two
<input type="checkbox" />three
<input type="checkbox" />four
</body>
</html>
for(var i=0;i<chk.length;i++){//循环对象数组
(function(n){//使用闭包函数
chk[n].onclick=function(){//对象点击事件
var i=this.value.replace(/[^\d]/g,"");//获取本身value中的数字
for(var l=0;l<chk.length;l++){//循环对象数组
var b=chk[l].value.replace(/[^\d]/g,"");//获取对象value中的数字
下面是判断本身是否已经选中,并且判断value中数字大小,这没有特别难懂的东西吧。
if(this.checked&&i>b){
chk[l].checked=true;
}
if(!this.checked&&i<b){
chk[l].checked=false;
}
}
}
})(i);
}