Solved

Using Radio Button to Run an onclick of another Radio Button Group (Ex. included to explain)

Posted on 2008-10-08
9
266 Views
Last Modified: 2010-04-21
I'm having trouble explaining this problem but I think I can with examples.

I want a code that will be able to do the following:
There is a question, "Do you want color?" and there is two radio buttons, O "Yes" and O "No".
When you click on "Yes", a group of radio buttons below is revealed: O "Red" O "Blue" O "Green"
I would like "Red" checked by default.
When you click "No", a group of radio buttons below is revealed: O "Black" O "White"
I would like "Black" checked by default.

Now, on each color there is an onclick="" event. When you click on "Yes" then the onclick event for "Red" should be run (used to calculate a price using Java Script) without having the user to click "Red"

I would also like it for when the user clicks on "No" the onclick="" event for "Black" should be run without the user having to click "Black"

Here is an example of this working: http://www.ibuypower.com/ibp/store/configurator.aspx?mid=224

When you scroll down to "CD/DVD Drive" section "LG 20X Dual Format/Double Layer DVD±R/±RW + CD-R/RW Drive" is selected by default. Then you can click "16x DVD-ROM Drive" and then it runs the onclick event for the default value "Beige" which calculates the price.

Here is my page I am trying to get this working on: http://buildmethebest.com/intel_customdesktop.php

It is under the Power Supply section. 500W is checked by default and then when you click on 530W it doesn't automatically run the onclick event for the radio button underneath it.

I want some way to run that event whether it be onclick or whatever without requiring the user to click the actual button.

I hope this explains my problem and what I am trying to do without being too overly complicated because I think it is a relatively simple fix. Thanks a million.
0
Comment
Question by:Doomtomb
  • 4
  • 3
  • 2
9 Comments
 
LVL 4

Expert Comment

by:sijishJohn
ID: 22675709
use this javascript to run the onclick event for "Red"..
function ApplyColor()
    {
       var Rad1 = document.getElementById('<Id of Radio Button>');      
       
       Rad1.checked = true;
       Rad1.onclick();
    }

Open in new window

0
 

Author Comment

by:Doomtomb
ID: 22675756
I couldn't get that code to work. Could you explain to me how to apply it?

I put your code with the proper <script type="text/javascript"></script> in the <head>

and I put in the radio button for "Yes" and "No" onclick="ApplyColor();" with the correct ids.

Mind you the yes, no, color thing is just an example.
0
 
LVL 4

Expert Comment

by:sijishJohn
ID: 22675787
Pls provide your html code
0
Webinar: Aligning, Automating, Winning

Join Dan Russo, Senior Manager of Operations Intelligence, for an in-depth discussion on how Dealertrack, leading provider of integrated digital solutions for the automotive industry, transformed their DevOps processes to increase collaboration and move with greater velocity.

 

Author Comment

by:Doomtomb
ID: 22675837
Here is code cleaned up and BEFORE implementation of your Java Script.
<form method="POST" action="index.php" name="Build">
<div id="RadioGroup1">
<div id="Group1">
<input type="radio" name="PSU" id="gp1" onclick="Reset(this.parentNode);" Checked>500W
<div id="sub_gp1" style="visibility: visible; display: block;">
<input type="radio" name="500w" id="1" onclick="onClickItem(2,1);" Checked>[Modular] Antec Neo Power<br>
<input type="radio" name="500w" id="2" onclick="onClickItem(2,2);">Apevia Java><br>
<input type="radio" name="500w" id="3" onclick="onClickItem(2,3);">Cooler Master eXtreme<br>
<input type="radio" name="500w" id="4" onclick="onClickItem(2,4);">Silverstone ST50F<br>
</div>
</div>
<div id="Group2">
<input type="radio" name="PSU" id="gp2" onclick="Reset(this.parentNode);">530W
<div id="sub_gp2" style="visibility: hidden; display: none;">
<input type="radio" name="530w" id="5" onclick="onClickItem(2,5);" Checked>[Modular] Raidmax Hybrid><br>
</div>
</div>
</div>	
</form>	

Open in new window

0
 
LVL 82

Assisted Solution

by:hielo
hielo earned 50 total points
ID: 22675905
You code is experiencing a runtime error on this line:
for (var i = 0; i < RadioGroup2.childNodes.length; i++) {

because on this line:
var RadioGroup2 = document.getElementById("RadioGroup2");

RadioGroup2 is set to null, since there is NO element with id="RadioGroup2"

You also have this:
onclick="Reset(this.parentNode); PSU(500);"

but there is NO function named PSU() so  that will give you another error. Furthermore, since you already have an element with name="PSU", you cannot create a function with the same name. Whatever you intend to do with that function, name it something else. Perhaps:
function _PSU(){...}
0
 
LVL 4

Accepted Solution

by:
sijishJohn earned 450 total points
ID: 22676030
hope this will help...
<script language="javascript" type="text/javascript">
function onClickItem(var1,var2)
    {
        //do your calculations
        
        document.getElementById('divName').innerText=var2;
    }
    
    function Reset()
    {          
        var Rad1 = document.getElementById('gp1');
        var Rad2 = document.getElementById('gp2');
        var Sub1 = document.getElementById('1');
        var Sub2 = document.getElementById('2');
        var Grp1 = document.getElementById('sub_gp1');
        var Grp2 = document.getElementById('sub_gp2');
        if(Rad1.checked)
        {
            Grp1.style.visibility = "visible";
            Grp1.style.display = "block";
            
            Grp2.style.visibility = "hidden";
            Grp2.style.display = "none";
            
            Sub1.onclick();
        }
        else
        {
            Grp2.style.visibility = "visible";
            Grp2.style.display = "block";
            
            Grp1.style.visibility = "hidden";
            Grp1.style.display = "none";
            
            Sub2.onclick();
        }
    }
    </script>
 
 
<div id="divName">
        500W
        </div>
        <div id="RadioGroup1">
            <div id="Group1" style="border:solid 1px #dcdcdc;">
                <input type="radio" name="PSU" id="gp1" onclick="Reset();" checked>500W
                <div id="sub_gp1" style="visibility: visible; display: block;">
                    <input type="radio" name="500w" id="1" onclick="onClickItem(2,1);" checked>[Modular]
                    Antec Neo Power<br>
                    <input type="radio" name="500w" id="2" onclick="onClickItem(2,2);">Apevia Java><br>
                    <input type="radio" name="500w" id="3" onclick="onClickItem(2,3);">Cooler Master
                    eXtreme<br>
                    <input type="radio" name="500w" id="4" onclick="onClickItem(2,4);">Silverstone ST50F<br>
                </div>
            </div>
            <br />
            <div id="Group2" style="border:solid 1px #dcdcdc;">
                <input type="radio" name="PSU" id="gp2" onclick="Reset();">530W
                <div id="sub_gp2" style="visibility: hidden; display: none;">
                    <input type="radio" name="530w" id="5" onclick="onClickItem(2,5);" >[Modular]
                    Raidmax Hybrid><br>
                </div>
            </div>
        </div>

Open in new window

0
 

Author Closing Comment

by:Doomtomb
ID: 31504545
Great work! This is exactly what I needed. I'll have to make some modifications but this is definitely enough information to get me to the exact code I need.

Thanks.
0
 
LVL 82

Expert Comment

by:hielo
ID: 22676137
glad to help.
0
 
LVL 4

Expert Comment

by:sijishJohn
ID: 22676147
:)
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction HTML checkboxes provide the perfect way for a web developer to receive client input when the client's options might be none, one or many.  But the PHP code for processing the checkboxes can be confusing at first.  What if a checkbox is…
This article demonstrates how to create a simple responsive confirmation dialog with Ok and Cancel buttons using HTML, CSS, jQuery and Promises
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.

856 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question