日期:2014-05-16  浏览次数:20320 次

jS(jquery)复选框问题请教
四个复选框 一个提交按钮,我想问问 选择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"/>


------解决方案--------------------
给点力好不好,结帐率太低了。
HTML code
<input type="checkbox" name="CHK" value="ck3"/>3
<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>

------解决方案--------------------
这个问题貌似以前有人问过啊,楼主以下代码试试,这是我以前帮别人写的,希望对你有所帮助。
HTML code

<!DOCTYPE html>
<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>