Show form based on radio button select

16,280

Solution 1

Using pure JavaScript:

Write this in your Script section.

var radios = document.getElementsByName("radios");
var cardpayment =  document.getElementById("cardpayment");
var internetpayment =  document.getElementById("internetpayment");

/* If Credit Card is selected by default, add these two lines of code.
cardpayment.style.display = 'block';   // show
internetpayment.style.display = 'none';// hide
*/

for(var i = 0; i < radios.length; i++) {
   radios[i].onclick = function() {
     var val = this.value;
     if(val == 'radio1' || val == 'radio2'){  // Assuming your value for radio buttons is radio1, radio2 and radio3.
        cardpayment.style.display = 'block';   // show
        internetpayment.style.display = 'none';// hide
     }
     else if(val == 'radio3'){
         cardpayment.style.display = 'none';
         internetpayment.style.display = 'block';
     }    

  }
}

fiddle: http://jsfiddle.net/LbrCf/

Solution 2

Try this, using jQuery Onchange

$("#radio1, #radio2").on("change", function(){
   $("#cardpayment").show();
   $("#internetpayment").hide();
});

$("#radio3").on("change", function(){
   $("#cardpayment").hide();
   $("#internetpayment").show(); 
});

Solution 3

I added this JavaScript code into your JSFiddel to create that effect

$('#radio1').change(function() {
    if(this.checked) {
        $('#cardpayment').show();
        $('#internetpayment').hide();
    }
});
$('#radio2').change(function() {
    if(this.checked) {
        $('#internetpayment').show();
        $('#cardpayment').hide();
    }
});

Solution 4

Your jQuery code should look something like this:

$(document).ready(function(){
$('#internet_radio').on('click', function(){
    $('#cardpayment').hide();
    $('#internetpayment').show();
})
$('#debit_radio').on('click', function(){
    $('#cardpayment').show();
    $('#internetpayment').hide();
})

})

Don't forget to load jQuery libraries to make this work. Also the next time you need this type of functionality, you could use this. You don't really have to load their css files, only the js libraries, and you can style your tabs as you like.

Solution 5

Pretty simple. Just do this:

$("#radio1, #radio2").on("click", function(){
   $("#cardpayment").show();
   $("#internetpayment").hide();
});

$("#radio3").on("click", function(){
   $("#cardpayment").hide();
   $("#internetpayment").show(); 
});
Share:
16,280
Admin
Author by

Admin

Updated on June 13, 2022

Comments

  • Admin
    Admin almost 2 years

    I have the following html which has two forms with form id=cardpayment for first form and form id="intenetpayment" for the second.

    Also I have 3 radio buttons named "Debit card","Credit Card","Internet Banking".

    All I want to do is,when I select the radio button Debitcard or Credit card,form with id="cardpayment" should be shown and the other form should be hidden and when i click on Internetbanking radio button , form with id="cardpayment" should be hidden and form with id="internetpayment" should be shown. Im new to jquery and javascript.I checked online that this can be done using a css by adding/removing a css class

    {
    display:none;
    }
    

    But i dont know how to make it work using javascript.

    You can find the fiddle at http://jsfiddle.net/d5qDb/1/

    Pardon for the long question,and I havnt included the css here for not confusing the question.It is in the fiddle anyway.thanks in advance for any help.I have given the division to two forms below.

     <body>
            <div id="credit-card">
                <header>
                               <span class="title" style="background-image: url('images/fethrpowered.png');"><strong>Card Payment:</strong> Enter payment details</span>
                    <a href="#"><span class="close"><img src="images/close.png"/></span></a>
    
    
    
                </header>
                <section id="content">
                                    <div class="title"><strong>Payment Mode- Select your payment mode</strong></div>
    
             <input type="radio" id="radio1" name="radios" value="all" checked>
           <label for="radio1">Credit Card</label>
    
        <input type="radio" id="radio2" name="radios"value="false">
           <label for="radio2">Debit Card</label>
    
            <input type="radio" id="radio3" name="radios"value="false">
           <label for="radio3">Internet Banking</label>
    
                    <form method="post" id="cardpayment">
    
    
    
            <div style="float:right;margin-top:50px;">
             <input type='hidden' id='ccType' name='ccType' />
                    <ul class="cards">
                    <li class="visa">Visa</li>
                    <li class="visa_electron">Visa Electron</li>
                    <li class="mastercard">MasterCard</li>
                    <li class="maestro">Maestro</li>                   
                    </ul>
            </div>
    
            <div class="table form-fields">                   
         <div class="row">
                <div class="label">Card Number:</div>
                                <div class="input full"><input type="text" name="ccnumber" id="ccnumber" placeholder="8763125487533457"/><br/></div>
    
    
        </div>
    
    
                            <div class="row">
                                <div class="label">Card Type:</div>
                                <div class="input full">
                                    <select class="styled">
                                        <option selected>Visa</option>
                                        <option>Mastercard</option>
                                        <option>Maestro</option>
                                        <option>SBI Maestro</option>
                                    </select>
                                </div>
                                <div class="valid"></div>
                            </div>
                            <div class="row">
                                                        <div class="label">Your name:</div>
                                <div class="input full"><input type="text" name="name" id="name" placeholder="Mr. Personality of TV"/></div>
    
    
                            </div>
                            <div class="row name">
                                <div class="label">Expires On:</div>
                                <div class="input size50">
                                    <select class="styled">
        <option selected>Select Month</option>
        <option value="01">January</option>
        <option value="02">February</option>
        <option value="03">March</option>
        <option value="04">April</option>
        <option value="05">May</option>
        <option value="06">June</option>
        <option value="07">July</option>
        <option value="08">August</option>
        <option value="09">September</option>
        <option value="10">October</option>
        <option value="11">November</option>
        <option value="12">December</option>
                                    </select>
            <select class="styled">
        <option selected>Select Year</option>
        <option value="2012">2012</option>
        <option value="2013">2013</option>
        <option value="2014">2014</option>
        <option value="2015">2015</option>
        <option value="2016">2016</option>
        <option value="2017">2017</option>
        <option value="2018">2018</option>
        <option value="2019">2019</option>
        <option value="2020">2020</option>
        <option value="2021">2021</option>
        <option value="2022">2022</option>
        <option value="2023">2023</option>
        <option value="2024">2024</option>
        <option value="2025">2025</option>
        <option value="2026">2026</option>                          <option value="2027">2027</option>
        <option value="2028">2028</option>
        <option value="2029">2029</option>
        <option value="2030">2030</option>
        <option value="2031">2031</option>
        <option value="2032">2032</option>
        <option value="2033">2033</option>
        <option value="2034">2034</option>
        <option value="2035">2035</option>
        <option value="2036">2036</option>
        </select>   
    
                                </div>
                                <div class="valid"></div>
                            </div>
                            <div class="row name">
                                <div class="label">CVV Number:</div>
                                <div class="input size50"><input type="text" name="cvv" id="cvv" placeholder="490" maxlength="3"/></div>
                            </div>
                        </div>
                        <input type="submit" style="float:right" value="Pay Now"/>
                    </form>
    

            <form method="post" id="internetpayment">
    
    
            <div class="table form-fields">     
    
                <div class="row name">
                                <div class="label">Name:</div>
                                <div class="input full"><input type="text" name="name" id="Name" placeholder="Enter your name"/></div>
                            </div>
    
                <div class="row name">
                                <div class="label">Email:</div>
                                <div class="input full"><input type="text" name="email" id="email" placeholder="Enter Email address"/></div>
                            </div>
    
                            <div class="row name">
                        <div class="label">Mobile Number:</div>
                                <div class="input size50"><input type="text" name="Mobile Number" id="mobileNo"/></div>
    
    
                            </div>
                            <div class="row name">
                                <div class="label">Bank:</div>
                                <div class="input size50">
    
         <select name="BankId" class="styled" data-required="true" data-trigger="change">
                            <option value="CORP">Corporation </option>
                            <option value="HDFC"> HDFC </option>
                            <option value="ICICI"> ICICI </option>
                            <option value="IDBI"> IDBI </option>
                            <option value="SBI"> STATE BANK OF INDIA </option>
                            <option value="DB"> DEUTSCHE </option>
                    </select>
    
    
                                </div>
                                <div class="valid"></div>
                            </div>
                            <div class="row name">
                                <div class="label">Amount:</div>
                                <div class="input size50"><input type="text" name="amount" id="amount" placeholder="10.00"/></div>
                            </div>
                        </div>
                        <input type="submit" style="float:right" value="Pay Now"/>
                    </form>
    
    
    
    
                </section>
    
            </div>
    
    
        </body>
    
  • Admin
    Admin over 10 years
    Thank you so much Sandeep.This worked like charm :)
  • Sandeep Nayak
    Sandeep Nayak over 10 years
    @user3079558: Welcome:)