<script>
function s_change(sel){
var s="1_b1;1_b5";
    var n = sel.options[sel.selectedIndex].value;
    var tbl = document.getElementById("tb");
    var ck  = tbl.getElementsByTagName("input");
    for(var i=0;i<ck.length;i++){
       if(ck[i].type=="checkbox"){
         id = ck[i].value;
         if(id.indexOf("_")==-1){
            if(n!=1) ck[i].setAttribute("value", n+"_"+id);    
         }
         else{
             var a = id.split("_");
             
              ck[i].setAttribute("value", n+"_"+a[1]);
         }    
       }
    }
var a=s.split(";");
for(var j=0;j<a.length;j++){
       for(var i=0;i<ck.length;i++){
            
                    if(a[j]==ck[i].id) document.getElementById(ck[i].id).disabled=true;
}
}
}    
</script>
<form action="2.asp">
<select name="week" id="s1" onchange="s_change(this)"> 
  <% 
      for i=1 to 7 
      response.Write " <option value='"&i&"'>"&i 
      NEXT 
  %> 
</select> 
  周  
    <table id="tb"> 
        <tr> 
          <td>星期一 </td> <td>星期二 </td> <td>星期三 </td> <td>星期四 </td> <td>星期五 </td> <td>星期六 </td> <td>星期日 </td> 
</tr> 
        <tr> 
  <% for a=1 to 7 
  response.Write" <td> <input type='checkbox' name='"&a&"' id='1_b"&a&"' onClick='t_onchange(this)' value='1_b"&a&"'> </td>" 
  next 
  %> 
        </tr> 
</table>
<input type="submit">
</form>我想改为:如果s里面有1_b(1-7),在加载页面时就执行disabled掉相应的checkbox,如果s里面有3_b(1-7),当我按下下拉列表,选择3时,下面也会disabled掉相应的checkbox,但如果没有其他的!其他的checkbox都是可以选的!例如:s里面没有2_b3,则,当我选2时,下面的第三个checkbox还是可以选!

解决方案 »

  1.   


    <script> 
    function s_change(sel){ 
    var s="3_b1;3_b5"; 
        var n = sel.options[sel.selectedIndex].value; 
        var tbl = document.getElementById("tb"); 
        var ck  = tbl.getElementsByTagName("input"); 
        for(var i=0;i <ck.length;i++){ 
          if(ck[i].type=="checkbox"){ 
            id = ck[i].value; 
            if(id.indexOf("_")==-1){ 
                if(n!=1) ck[i].setAttribute("value", n+"_"+id);    
            } 
            else{ 
                var a = id.split("_"); 
                
                  ck[i].setAttribute("value", n+"_"+a[1]); 
            }    
          } 
        } 
        for(var i=0;i <ck.length;i++){ 
            document.getElementById(ck[i].id).disabled=false;
        }
    var a=s.split(";"); 
    for(var j=0;j <a.length;j++){
        var t = a[j].split("_b");
        if(n==parseInt(t[0],10)) document.getElementById("1_b" + parseInt(t[1],10)).disabled=true;

    }    
    </script> 
    <form action="2.asp"> 
    <select name="week" id="s1" onchange="s_change(this)"> 
      <% 
          for i=1 to 7 
          response.Write " <option value='"&i&"'>"&i 
          NEXT 
      %> 
    </select> 
      周  
        <table id="tb"> 
            <tr> 
              <td>星期一 </td> <td>星期二 </td> <td>星期三 </td> <td>星期四 </td> <td>星期五 </td> <td>星期六 </td> <td>星期日 </td> 
    </tr> 
            <tr> 
      <% for a=1 to 7 
      response.Write" <td> <input type='checkbox' name='"&a&"' id='1_b"&a&"' onClick='t_onchange(this)' value='1_b"&a&"'> </td>" 
      next 
      %> 
            </tr> 
    </table> 
    <input type="submit"> 
    </form>
      

  2.   

    还差这一步:如果s里面有1_b(1-7),在加载页面时就执行disabled掉相应的checkbox