www.webdeveloper.com
Results 1 to 3 of 3

Thread: parent and child checkboxes

  1. #1
    Join Date
    May 2005
    Posts
    5

    Cool parent and child checkboxes

    I currently have populated checkboxes in my form. I would like to write script that by clicking on a parent checkbox it will automatically select the child checkboxes as well.

    The current Script I have is only the parent with a name and populated value attached to it. I would like to attach child checkboxes for each checkbox that appears from code below.

    Code:
     <input type="checkbox" name="price" value="<%Response.Write Recordset("price")%>"/>

  2. #2
    Join Date
    Apr 2003
    Location
    Netherlands
    Posts
    21,654
    Technically speaking an input can not have children, but I think I know what you mean:
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
    <html lang="en">
    <head>
    <title>form</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    
    <script type="text/javascript">
    <!--
    function checkChildren(parent) {
    var sibling=(parent.nextSibling.nodeType==3)? parent.nextSibling.nextSibling : parent.nextSibling;
    var aInput=sibling.getElementsByTagName('input');
    var check=(parent.checked)? true : false;
    for(var i=0; i<aInput.length; i++) {
        aInput[i].checked=check;
        }
    }
    //-->
    </script>
    
    </head>
    <body>
    <form action="#" name="form1">
    <div>
    <fieldset><legend>group 1</legend>
        <label for="price1">price1:</label><input type="checkbox" id="price1" value="" onclick="checkChildren(this);"/>
        <div>
            <input type="checkbox" name="child11" value=""/>
            <input type="checkbox" name="child12" value=""/>
            <input type="checkbox" name="child13" value=""/>
        </div>
    </fieldset>
    
    <fieldset><legend>group 2</legend>
        <label for="price2">price2</label><input type="checkbox" id="price2" value="" onclick="checkChildren(this);"/>
        <div>
            <input type="checkbox" name="child21" value=""/>
            <input type="checkbox" name="child22" value=""/>
            <input type="checkbox" name="child23" value=""/>
        </div>
    </fieldset>
    </div>
    </form>
    </body>
    </html>
    At least 98% of internet users' DNA is identical to that of chimpanzees

  3. #3
    Join Date
    May 2005
    Posts
    5

    solution

    I did something similiar and it worked: Thanks for the suggestion

    Code:
    function toggleGroup(parentChk){
      var parentRow = parentChk.parentNode.parentNode; //go 2 parent elements up
      var chks = parentRow.getElementsByTagName('input');
      var len = chks.length;
      var state = parentChk.checked;
      for (var i=1; i<len; i++){ //skip the first checkbox
        if (chks[i].type=="checkbox"){ //just in case you have other input types inside the div; can be removed if no other input types
          chks[i].checked = state;
        }
      }
    }
    ...
    <input type="checkbox" name="price" value="<%Response.Write Recordset("price")%>" onclick="toggleGroup(this)" />

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles