如果lz的表单的id可以各不相同的话,js会简单很多的,这样的情况,需要用document.getElementsByTagName 一层一层的遍历

解决方案 »

  1.   

    var j=0;
    var str=null;
    for (i=0;document.getElementsByName("input").length-1;i++)
    {
      if(document.getElementsByName("input").item(i).checked)
       {
           str+=i+","
            j++;
       }
       if (j>2)
        {
         alert("最多只能选两个!");
         return false;
         }
      else
        {
         if ((j==2)&&substr(str,"2")||substr(str,"5"))
          {
           alert("选择错误!");
           return false;
          }
        }
    }
    if (document.getElementsByName("input").item(2).checked ||document.getElementsByName("input").item(5).checked)
    {
    for (i=0;document.getElementsByName("input").length-1;i++)
     {
      if not(i==2||i==5)
       {
        document.getElementsByName("input").item(i).display=false;
       }
     }
    }
    试试?
      

  2.   

    判断有点多 自己看着都烦。。
    <body>
    <div id='conter'>
    <input type="checkbox" name="jcfs" id="jcfs" value="a">明查 
    <input type="checkbox" name="jcfs" id="jcfs" value="b">暗访 
    <input type="checkbox" name="jcfs" id="jcfs" value="c">添乘 
    <input type="checkbox" name="jcfs" id="jcfs" value="d">上网 
    <input type="checkbox" name="jcfs" id="jcfs" value="e">跟班 
    <input type="checkbox" name="jcfs" id="jcfs" value="f">巡视 
    <input type="checkbox" name="jcfs" id="jcfs" value="g"  >夜查 
    </div>
    <script>
    var dd=0
    function addListener(element,e,fn){ element.addEventListener?element.addEventListener(e,fn,false):element.attachEvent("on" + e,fn)}
    function removeListener(element,e,fn){ element.removeEventListener?element.removeEventListener(e,fn,false):element.detachEvent("on" + e,fn)}
    function $(id){return document.getElementById(id)}for(var i=0;i<$('conter').getElementsByTagName('input').length;i++)
    {
    var v=$('conter').getElementsByTagName('input')[i];
    (function(v){
    addListener($('conter').getElementsByTagName('input')[i],'click',function(){cck(v)})
        })(v);
    }function cck(v){
    if(v.value=='c'||v.value=='f')
        {
        if(v.checked)
    {
    for(var i=0;i<$('conter').getElementsByTagName('input').length;i++)
    {if(v.value!=$('conter').getElementsByTagName('input')[i].value)$('conter').getElementsByTagName('input')[i].setAttribute("disabled", "disabled")}
        } 
    else
    {
        for(var i=0;i<$('conter').getElementsByTagName('input').length;i++)
     {$('conter').getElementsByTagName('input')[i].removeAttribute("disabled", "disabled")}
    }
    }
    else
    {
     if(v.checked)
     {
     $('conter').getElementsByTagName('input')[2].setAttribute("disabled", "disabled");
     $('conter').getElementsByTagName('input')[5].setAttribute("disabled", "disabled");
                 dd++
     if(dd==2)
     {
         for(var i=0;i<$('conter').getElementsByTagName('input').length;i++)
         {
                     if(!$('conter').getElementsByTagName('input')[i].checked)
    $('conter').getElementsByTagName('input')[i].setAttribute("disabled", "disabled");
     }
     }
       
     }
     else
     {
      dd--
      for(var i=0;i<$('conter').getElementsByTagName('input').length;i++)
      {
      $('conter').getElementsByTagName('input')[i].removeAttribute("disabled", "disabled");
      }
              if(dd==1)
      {
       $('conter').getElementsByTagName('input')[2].setAttribute("disabled", "disabled");
       $('conter').getElementsByTagName('input')[5].setAttribute("disabled", "disabled");
      }
     }
    }
    }
    </script>
    </body>
      

  3.   


    <input type="checkbox" name="jcfs" id="jcfs" value="明查" onclick="check()">明查 
    <input type="checkbox" name="jcfs" id="jcfs" value="暗访" onclick="check()">暗访 
    <input type="checkbox" name="jcfs" id="jcfs" value="添乘" onclick="check();check2(this);">添乘 
    <input type="checkbox" name="jcfs" id="jcfs" value="上网" onclick="check()">上网 
    <input type="checkbox" name="jcfs" id="jcfs" value="跟班" onclick="check()">跟班 
    <input type="checkbox" name="jcfs" id="jcfs" value="巡视" onclick="check();check2(this);">巡视 
    <input type="checkbox" name="jcfs" id="jcfs" value="夜查" onclick="check()">夜查
    <script>
    function check(){
    var obj = document.all.item("jcfs") ;
    //条件一
    var flag = false ;
    for(var i=0;i<obj.length;i++){
    if((obj[i].value != "添乘" && obj[i].value != "巡视") && obj[i].checked == true ) {
    flag = true ;
    }
    }
    if(flag){
    for(var i=0;i<obj.length;i++){
    if(obj[i].value == "添乘" || obj[i].value == "巡视") {
     obj[i].checked = false ; 
     obj[i].disabled = true ; 
    }
    }
    }
    var flag2 = true ;
    for(var i=0;i<obj.length;i++){
    if(obj[i].checked == true){
    flag2 = false ;
    }
    }
    if(flag2){
    for(var i=0;i<obj.length;i++){
    if(obj[i].value == "添乘" || obj[i].value == "巡视") {
    obj[i].disabled = false ; 
    }
    }
    }
    }
    function check2(flag){
    var obj = document.all.item("jcfs") ;
    if(flag.checked==true){
    for(var i=0;i<obj.length;i++){
    obj[i].checked = false ;
    obj[i].disabled = true ;
    if(obj[i].value == flag.value){
    obj[i].disabled = false ;
    obj[i].checked = true ;
    }
    }
    }else{
    for(var i=0;i<obj.length;i++){
    obj[i].checked = false ;
    obj[i].disabled = false ;
    if(obj[i].value == flag.value){
    obj[i].disabled = false ;
    obj[i].checked = false ;
    }
    }
    }
    }
    </script>我这个完美了
      

  4.   

    L@_@K
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <title>dhtml.checkbox.multipleAndSingleSelect.html</title>
      <meta name="generator" content="editplus" />
      <meta name="author" content="[email protected]" />
      <meta name="keywords" content="" />
      <meta name="description" content="" />
     </head> <body>
    <pre>1.只能勾选其中2项除了"添乘"和"巡视"(勾选其它项时完全当作没有"添乘"和"巡视",即"添乘"和"巡视"无法选).
    2."添乘"和"巡视"只能勾选其中一项,即在勾选"添乘"和"巡视"其中一项时其它项目都无法选择.以上2个条件均要满足。</pre>
    <input type="checkbox" name="jcfs" id="jcfs" value="明查">明查
    <input type="checkbox" name="jcfs" id="jcfs" value="暗访">暗访
    <input type="checkbox" name="jcfs" id="jcfs" value="添乘">添乘
    <input type="checkbox" name="jcfs" id="jcfs" value="上网">上网
    <input type="checkbox" name="jcfs" id="jcfs" value="跟班">跟班
    <input type="checkbox" name="jcfs" id="jcfs" value="巡视">巡视
    <input type="checkbox" name="jcfs" id="jcfs" value="夜查">夜查
    <input type="button" value="查看选中值" onclick="alert(selectedValue);" />
    <script type="text/javascript">
    <!--
    Array.prototype.indexOf = function(value) {
    var index = -1;
    for (var i=0; i<this.length; i++)
    {
    if (this[i] == value)
    {
    index = i;
    break;
    }
    }
    return index;
    };
    Array.prototype.contains = function(value) {
    if (this.indexOf(value) != -1)
    return true;
    else
    return false;
    };var colCbx = document.getElementsByName("jcfs");
    var singleValue = ["添乘","巡视"];
    var multipleMax = 2;
    var selectedValue = new Array();function getCheckBoxByValue(value)
    {
    for (var i=0; i<colCbx.length; i++)
    if(colCbx[i].value == value) return colCbx[i];
    }function controlOptions(cbx)
    {
    for (var i=0; i<colCbx.length; i++)
    if((cbx.isSingle && !colCbx[i].isSingle)
    || (!cbx.isSingle && colCbx[i].isSingle && (cbx.checked || selectedValue.length == 1)))
    colCbx[i].disabled = cbx.checked;
    }function setSelectedValue(cbx)
    {
    if (cbx.isSingle)
    {
    var value = selectedValue.shift();
    if (value)
    getCheckBoxByValue(value).checked = false; if (cbx.checked)
    selectedValue.push(cbx.value);
    }
    else
    {
    if (cbx.checked)
    {
    if (selectedValue.length == multipleMax)
    getCheckBoxByValue(selectedValue.shift()).checked = false; selectedValue.push(cbx.value);
    }
    else
    selectedValue.splice(selectedValue.indexOf(cbx.value), 1);
    }
    }for (var i=0; i<colCbx.length; i++)
    {
    colCbx[i].isSingle = singleValue.contains(colCbx[i].value); colCbx[i].onclick = function() {
    controlOptions(this);
    setSelectedValue(this);
    };
    }
    //-->
    </script>
     </body>
    </html>
      

  5.   

    晕,刚才忘了加标记
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <title>dhtml.checkbox.multipleAndSingleSelect.html</title>
      <meta name="generator" content="editplus" />
      <meta name="author" content="[email protected]" />
      <meta name="keywords" content="" />
      <meta name="description" content="" />
     </head> <body>
    <pre>1.只能勾选其中2项除了"添乘"和"巡视"(勾选其它项时完全当作没有"添乘"和"巡视",即"添乘"和"巡视"无法选).
    2."添乘"和"巡视"只能勾选其中一项,即在勾选"添乘"和"巡视"其中一项时其它项目都无法选择.以上2个条件均要满足。</pre>
    <input type="checkbox" name="jcfs" id="jcfs" value="明查">明查
    <input type="checkbox" name="jcfs" id="jcfs" value="暗访">暗访
    <input type="checkbox" name="jcfs" id="jcfs" value="添乘">添乘
    <input type="checkbox" name="jcfs" id="jcfs" value="上网">上网
    <input type="checkbox" name="jcfs" id="jcfs" value="跟班">跟班
    <input type="checkbox" name="jcfs" id="jcfs" value="巡视">巡视
    <input type="checkbox" name="jcfs" id="jcfs" value="夜查">夜查
    <input type="button" value="查看选中值" onclick="alert(selectedValue);" />
    <script type="text/javascript">
    <!--
    Array.prototype.indexOf = function(value) {
    var index = -1;
    for (var i=0; i<this.length; i++)
    {
    if (this[i] == value)
    {
    index = i;
    break;
    }
    }
    return index;
    };
    Array.prototype.contains = function(value) {
    if (this.indexOf(value) != -1)
    return true;
    else
    return false;
    };var colCbx = document.getElementsByName("jcfs");
    var singleValue = ["添乘","巡视"];
    var multipleMax = 2;
    var selectedValue = new Array();function getCheckBoxByValue(value)
    {
    for (var i=0; i<colCbx.length; i++)
    if(colCbx[i].value == value) return colCbx[i];
    }function controlOptions(cbx)
    {
    for (var i=0; i<colCbx.length; i++)
    if((cbx.isSingle && !colCbx[i].isSingle)
    || (!cbx.isSingle && colCbx[i].isSingle && (cbx.checked || selectedValue.length == 1)))
    colCbx[i].disabled = cbx.checked;
    }function setSelectedValue(cbx)
    {
    if (cbx.isSingle)
    {
    var value = selectedValue.shift();
    if (value)
    getCheckBoxByValue(value).checked = false; if (cbx.checked)
    selectedValue.push(cbx.value);
    }
    else
    {
    if (cbx.checked)
    {
    if (selectedValue.length == multipleMax)
    getCheckBoxByValue(selectedValue.shift()).checked = false; selectedValue.push(cbx.value);
    }
    else
    selectedValue.splice(selectedValue.indexOf(cbx.value), 1);
    }
    }for (var i=0; i<colCbx.length; i++)
    {
    colCbx[i].isSingle = singleValue.contains(colCbx[i].value); colCbx[i].onclick = function() {
    controlOptions(this);
    setSelectedValue(this);
    };
    }
    //-->
    </script>
     </body>
    </html>
      

  6.   

    <script type="text/javascript">
        var isTC = 0;//添乘
        var isXS = 0;//巡视
        var isOther = 0;//其他
        function doCheck(obj){
          //alert(isTC + ":" + isXS + ":" + isOther);
         if(obj.checked==true){
             if(obj.value!="添乘"&&obj.value!="巡视"){
                 if(isTC==1||isXS==1){
                     obj.checked=false;
                     alert("业务错误,请重新选择!");
                     return;
                 }
                 isOther++;
             }else if(obj.value=="添乘"&&isXS==1){
                 obj.checked=false;
                 alert("业务错误,请重新选择!");
             }else if(obj.value=="巡视"&&isTC==1){
                 obj.checked=false;
                 alert("业务错误,请重新选择!");
             }else if(obj.value=="添乘"&&isOther!=0){
                 obj.checked=false;
                 alert("业务错误,请重新选择!");
             }else if(obj.value=="巡视"&&isOther!=0){
                 obj.checked=false;
                 alert("业务错误,请重新选择!");
             }else if(obj.value=="添乘"){
                 isTC=1;
             }else if(obj.value=="巡视"){
                 isXS=1;
             }
         }else{
             if(obj.value!="添乘"&&obj.value!="巡视"){
                 isOther--;
             }else if(obj.value=="添乘"){
                 isTC=0;
             }else if(obj.value=="巡视"){
                 isXS=0;
             }
         }
        
        }
    </script>
    <input type="checkbox" name="jcfs" id="jcfs" value="明查" onclick="doCheck(this);">明查 
    <input type="checkbox" name="jcfs" id="jcfs" value="暗访" onclick="doCheck(this);">暗访 
    <input type="checkbox" name="jcfs" id="jcfs" value="添乘" onclick="doCheck(this);">添乘 
    <input type="checkbox" name="jcfs" id="jcfs" value="上网" onclick="doCheck(this);">上网 
    <input type="checkbox" name="jcfs" id="jcfs" value="跟班" onclick="doCheck(this);">跟班 
    <input type="checkbox" name="jcfs" id="jcfs" value="巡视" onclick="doCheck(this);">巡视 
    <input type="checkbox" name="jcfs" id="jcfs" value="夜查" onclick="doCheck(this);">夜查 
      

  7.   

    8楼的最好,5楼6楼的有bug,我写的只是验证,支持8楼,佩服高手!
      

  8.   

    谢谢各位...正如goldlive8888说的八楼写的真好..
    由于本人的失误开始上分太少了..现在分起来真麻烦,而且好象不能补分...随便散下分希望大家别介意..在次感谢.