【问题标题】:Show form based on radio button select [closed]基于单选按钮选择显示表单[关闭]
【发布时间】:2013-12-09 10:38:11
【问题描述】:

我有以下 html,它有两种形式,第一种形式为id=cardpayment,第二种形式为id="intenetpayment"

我还有 3 个单选按钮,名为“借记卡”、“信用卡”、“网上银行”。

我要做的就是,当我选择单选按钮借记卡或信用卡时,应显示带有id="cardpayment" 的表格,而应隐藏另一个表格,当我单击网上银行单选按钮时,带有id="cardpayment" 的表格应该隐藏并且应该显示带有id="internetpayment" 的表格。我是 jquery 和 javascript 的新手。我在网上查了一下,这可以通过添加/删除 css 类来使用 css 完成

{
display:none;
}

但我不知道如何使用 javascript 使其工作。

你可以在http://jsfiddle.net/d5qDb/1/找到小提琴

请原谅这个冗长的问题,我没有在此处包含 css 以免混淆问题。无论如何它都在小提琴中。提前感谢您的帮助。我已将除法分为以下两种形式。

 <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>

【问题讨论】:

    标签: javascript jquery html forms radio-button


    【解决方案1】:

    使用纯 JavaScript:

    把它写在你的脚本部分。

    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';
         }    
    
      }
    }
    

    小提琴:http://jsfiddle.net/LbrCf/

    【讨论】:

    • 非常感谢 Sandeep。这很有魅力 :)
    • @user3079558: 欢迎:)
    【解决方案2】:

    试试这个,使用 jQuery Onchange

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

    【讨论】:

      【解决方案3】:

      我将此 JavaScript 代码添加到您的 JSFiddel 中以创建该效果

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

      【讨论】:

        【解决方案4】:

        您的 jQuery 代码应如下所示:

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

        })

        不要忘记加载 jQuery 库来完成这项工作。 此外,下次您需要此类功能时,您可以使用this。您实际上不必加载他们的 css 文件,只需加载 js 库,您可以根据需要设置标签的样式。

        【讨论】:

          【解决方案5】:

          很简单。只需这样做:

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

          【讨论】:

            猜你喜欢
            • 2015-04-26
            • 1970-01-01
            • 1970-01-01
            • 2019-03-19
            • 2021-07-17
            • 2016-03-08
            • 1970-01-01
            • 1970-01-01
            • 2021-02-16
            相关资源
            最近更新 更多