Solved

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

Posted on 2008-10-08
9
269 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

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

The Orion Papers

Are you interested in becoming an AWS Certified Solutions Architect?

Discover a new interactive way of training for the exam.

Question has a verified solution.

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

It is a general practice to get rid of old user profiles on a computer  in a LAN environment. As I have been working with a company in a LAN environment where users move from one place to some other place at times. This will make many user profil…
A quick Powershell script I wrote to find old program installations and check versions of a specific file across the network.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

705 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