所有CheckBox使用同一个Name,提交后ASP中得到的就是所有选中项目的值字串;但是ID用不同的,以方便控制选择视觉效果

解决方案 »

  1.   

    <style type="text/css">
    <!--
    BODY {
        FONT-SIZE: 12px; 
    }
    -->
    </style>
    <form name=userEdit>
    <img id="ico_add1" src="collapsed.gif" border="0" onclick="JavaScript:OpenLayer(div1,ico_add1);" style="cursor:hand">
    <input type=checkbox name=All_A value="A" onclick="checkAll('mm_a')">系统设定<br/>
    <div id="div1" style="Display:none">
    <img src="t.gif" border="0"><input type=checkbox name=mm_a value="A01">用户查看<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm_a value="A02">用户增加<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm_a value="A03">用户删除<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm_a value="A04">用户修改<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm_a value="A05">启用用户<br/>
    </div><img id="ico_add2" src="collapsed.gif" border="0" onclick="JavaScript:OpenLayer(div2,ico_add2);" style="cursor:hand">
    <input type=checkbox name=All_B value="B" onclick="checkAll('mm2')">自选风格<br/>
    <div id="div2" style="Display:none">
    <img src="t.gif" border="0"><input type=checkbox name=mm2 value="B01">风格一<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm2 value="B02">风格二<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm2 value="B03">风格三<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm2 value="B04">风格四<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm2 value="B05">风格五<br/>
    </div><img id="ico_add3" src="collapsed.gif" border="0" onclick="JavaScript:OpenLayer(div3,ico_add3);" style="cursor:hand">
    <input type=checkbox name=All_C value="C" onclick="checkAll('mm3')">系统日志<br/>
    <div id="div3" style="Display:none">
    <img src="t.gif" border="0"><input type=checkbox name=mm3 value="C01">查看日志<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm3 value="C02">导出日志<br/>
    <img src="l.gif" border="0"><input type=checkbox name=mm3 value="C03">删除日志<br/>
    </div>
    <input type="submit" name=chkall value="提交" onclick="PowerSelected(this.form)">
    </form>
    需求:<br>
    如何得到所有checkbox值???<br>
    目前的这种方法只能得到“系统设定”所有选择的值。<br>
    那位朋友帮助改改?<br>
    最终目的是把所选择所有checkbox值生成一个字符串提交给数据库?
    <SCRIPT LANGUAGE="JavaScript">
    function PowerSelected(form) { var a = document.getElementsByTagName("input");
    var s = ""; for(var i=0;i<a.length;i++)
    {
    if(a[i].type=="checkbox"&&typeof(a[i].name)!="undefined"&&a[i].name.substring(0,2)=="mm"&&a[i].checked)
    {
    s += a[i].value + ",";
    }
    } alert(s);
    }function checkAll(str)
    {
      var a = document.getElementsByName(str);
      var n = a.length;
      for (var i=0; i<n; i++)
      a[i].checked = window.event.srcElement.checked;
    }
    function OpenLayer(CurrentLayer,imageID) {
    if (CurrentLayer.style.display == 'none') {
    CurrentLayer.style.display = '';
    imageID.src='expanded.gif';
    }
    else {
    CurrentLayer.style.display = 'none';
    imageID.src='collapsed.gif';
    }
    }
    </SCRIPT>
      

  2.   

    <style type="text/css">
    <!--
    BODY {
        FONT-SIZE: 12px; 
    }
    -->
    </style>
    <form name=userEdit>
    <img id="ico_add1" src="collapsed.gif" border="0" onclick="JavaScript:OpenLayer(div1,ico_add1);" style="cursor:hand">
    <input type=checkbox name=All_A value="A" onclick="checkAll('mm_a')">系统设定<br/>
    <div id="div1" style="Display:none">
    <img src="t.gif" border="0"><input type=checkbox name=mm_a value="A01" onclick="checkItem('All_A')">用户查看<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm_a value="A02" onclick="checkItem('All_A')">用户增加<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm_a value="A03" onclick="checkItem('All_A')">用户删除<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm_a value="A04" onclick="checkItem('All_A')">用户修改<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm_a value="A05" onclick="checkItem('All_A')">启用用户<br/>
    </div><img id="ico_add2" src="collapsed.gif" border="0" onclick="JavaScript:OpenLayer(div2,ico_add2);" style="cursor:hand">
    <input type=checkbox name=All_B value="B" onclick="checkAll('mm2')">自选风格<br/>
    <div id="div2" style="Display:none">
    <img src="t.gif" border="0"><input type=checkbox name=mm2 value="B01" onclick="checkItem('All_B')">风格一<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm2 value="B02" onclick="checkItem('All_B')">风格二<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm2 value="B03" onclick="checkItem('All_B')">风格三<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm2 value="B04" onclick="checkItem('All_B')">风格四<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm2 value="B05" onclick="checkItem('All_B')">风格五<br/>
    </div><img id="ico_add3" src="collapsed.gif" border="0" onclick="JavaScript:OpenLayer(div3,ico_add3);" style="cursor:hand">
    <input type=checkbox name=All_C value="C" onclick="checkAll('mm3')">系统日志<br/>
    <div id="div3" style="Display:none">
    <img src="t.gif" border="0"><input type=checkbox name=mm3 value="C01" onclick="checkItem('All_C')">查看日志<br/>
    <img src="t.gif" border="0"><input type=checkbox name=mm3 value="C02" onclick="checkItem('All_C')">导出日志<br/>
    <img src="l.gif" border="0"><input type=checkbox name=mm3 value="C03" onclick="checkItem('All_C')">删除日志<br/>
    </div>
    <input type="button" name=chkall value="提交" onclick="PowerSelected(userEdit)">
    </form>
    需求:<br>
    如何得到所有checkbox值???<br>
    目前的这种方法只能得到“系统设定”所有选择的值。<br>
    那位朋友帮助改改?<br>
    最终目的是把所选择所有checkbox值生成一个字符串提交给数据库?
    <SCRIPT LANGUAGE="JavaScript">
    function PowerSelected(form) {
    var str="";
    var chks=form.getElementsByTagName("input");
    for(var i=0;i<chks.length;i++){
    if(chks[i].type=="checkbox"){
    if(chks[i].checked){
    if(str!="") str+="|";
    str+=chks[i].value;
    }
    }
    }
    alert (str)
    }function checkAll(str)
    {
      var a = document.getElementsByName(str);
      var n = a.length;
      for (var i=0; i<n; i++)
      a[i].checked = window.event.srcElement.checked;
    }
    function checkItem(str)
    {
      var e = window.event.srcElement;
      var all = eval("document.userEdit."+ str);
      if (e.checked)
      {
        var a = document.getElementsByName(e.name);
        all.checked = true;
        for (var i=0; i<a.length; i++)
        {
          if (!a[i].checked){ all.checked = false; break;}
        }
      }
      else all.checked = false;
    }function OpenLayer(CurrentLayer,imageID) {
    if (CurrentLayer.style.display == 'none') {
    CurrentLayer.style.display = '';
    imageID.src='expanded.gif';
    }
    else {
    CurrentLayer.style.display = 'none';
    imageID.src='collapsed.gif';
    }
    }
    </SCRIPT>
      

  3.   

    谢谢!
    二位的代码都符合要求了。
    后者更好一些!现在能不能在完善一下,当点击“用户查看”、“用户增加”时,把“系统设定”的值也传过去。
    即:A|A01|A02
    谢谢!这个功能能不能完善,我都会结贴的。
      

  4.   

    var splited=',';
    var chkBoxName='mm_a';
        var all_chkbox_mm_a = document.getElementsByName(chkBoxName);
     for(var i=0;i< all_chkbox_mm_a.length;i++){
    if (all_chkbox_mm_a[i].checked)
    {
    text=text+all_chkbox_mm_a[i].value+splited;
    }
     }
    text = text.substring(0, text.length-1);
    var splited=',';
    var chkBoxName='mm2';
        var all_chkbox_mm2 = document.getElementsByName(chkBoxName);
     for(var i=0;i< all_chkbox_mm2.length;i++){
    if (all_chkbox_mm2[i].checked)
    {
    text2=text2+all_chkbox_mm2[i].value+splited;
    }
     }
    text2 = text2.substring(0, text2.length-1);............