【问题标题】:Display HTML form, based on selection of Radio Button显示 HTML 表单,基于单选按钮的选择
【发布时间】:2015-04-26 02:21:20
【问题描述】:

我正在尝试排列我的单选按钮,以便它们根据选择的按钮显示单独的表单

我已经开始工作了。

问题是:表单“一个接一个”显示。

含义:不是显示第二种形式代替第一种形式,而是显示 WAY DOWN BELOW ))))))))))

这是我的表单代码的排列:

   <article>
    <fieldset>
    <h2 style="color:black; text-align:center; font:verdana; font-  
     size:100%"><b><u>Pay Now</u></b></h2>
        <br>
        <br>
        <p>Please select a method of payment below :</p>
        <br>
        <form>
         <label><input value="1" type="radio" name="formselector" 
    onclick="displayForm(this)">Via Credit Card</label>
            <br> 
            <label><input value="2" type="radio" name="formselector" 
       onclick="displayForm(this)">Via Paypal</label>   
        </form>

        <form style="visibility:hidden" id="ccform"><label>Enter your credit 
      card details :</label>
            <br>
            <br>
        <dd><p>Credit Card Name : <input type="text" id="ccname" 
       name="ccname" value="$ccname"></p>
                <p>Credit Card Type : <select name="cctype" required>
                <option value="Visa">Visa</option>
                <option value="Mastercard">Mastercard</option>
                <option value="American Express">American Express</option>
                <option value="Discover">Discover</option>
                <option value="Diners Club">Diners Club</option>
                <option value="Maestro">Maestro</option>
                <option value="Verified By Visa">Verified By Visa</option>
                <option value="Visa Electron">Visa Electron</option>
                </select>

       <p>Credit Card Number : <input type="text" minlength="16" 
      id="ccnumber" name="ccnumber" value="$ccnumber"></p>
                <p>Credit Expiry Date : Month : <select 
          name="ccexpdatemonth" required>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
                <option value="9">9</option>
                <option value="10">10</option>
                <option value="11">11</option>
                <option value="12">12</option>
                </select>
                <span>Year : <select name="ccexpdateyear" required>
                <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>
                </select></span>
        <p>Credit Card CVC : <input type="text" minlength="3" id="cccvc" 
       name="cccvc" value="$cccvc"></p>
            </dd>   
            </form>
            <form style="visibility:hidden" id="paypalform"><label>Enter 
        your Paypal Details</label>
            <br>
            <br>
            <dd>Paypal Address : <input type="text" id="paypal" 
       name="paypal" value="$paypal"></dd>
            </form> 

                    <br>
        <div id="float_right">
        <input type="submit" name="submit3" value="Pay Now">
        </div>
    </fieldset>
    </article>  

实际上,我理想的解决方案是让每个表单直接显示在其自己的单选按钮下方。

如何重新安排我的代码,以实现这一目标?

谢谢

我的 JS 函数:

  <script type="text/javascript"> 
        function displayForm(c){ 
            if(c.value == "1"){ 

     document.getElementById("ccform").style.visibility='visible'; 
     document.getElementById("paypalform").style.visibility='hidden'; 
            } 
            else if(c.value =="2"){ 
                document.getElementById("ccform").style.visibility='hidden'; 

      document.getElementById("paypalform").style.visibility='visible'; 
            } 
            else{ 
            } 
         }         
    </script>  

【问题讨论】:

  • 将每个表单包装在一个 div 中,并改为切换 div 的可见性。然后使用行内样式定位
  • 嗨,user3479671。感谢您的答复。我按照你说的做了一切,但我显然做错了什么,因为情况没有改变。我应该在某处“调用”或“引用”这些容器名称吗?也许,在 JavaScript 函数本身? (我编辑了我的帖子,以包含我的 JS 函数。我认为那是我应该切换 div 容器的地方?)
  • 更新:我用 javascript 函数中的容器 ID 替换了表单 ID。它没有帮助。仍然得到相同的结果((((((((
  • 到底发生了什么?是否正确切换可见性?您可能想尝试绝对定位并使用 top 和 left 参数
  • 正如我在帖子中提到的,正在发生的事情是:表格显示在另一个下方............而不是彼此代替。第二个,对于 Paypal,被移到页面的最底部

标签: javascript html forms radio-button


【解决方案1】:

试一试(对我有用)我不得不把上边距弄脏一点。

<script type="text/javascript"> 
    function displayForm(c) {
        if (c.value == "1") {

            document.getElementById("ccformContainer").style.visibility = 'visible';
            document.getElementById("paypalformContainer").style.visibility = 'hidden';
        } else if (c.value == "2") {
            document.getElementById("ccformContainer").style.visibility = 'hidden';

            document.getElementById("paypalformContainer").style.visibility = 'visible';
        } else {}
    }

    </script>


    <form>
        <input value="1" type="radio" name="formselector" onClick="displayForm(this)"></input>Via Credit Card
        <br>
        <input value="2" type="radio" name="formselector" onClick="displayForm(this)"></input>Via Paypal</form>
    <div style="visibility:hidden; position:relative" id="ccformContainer">
        <form id="ccform">
            <label>Enter your credit card details :</label>
            <br>
            <br>
            <dd>
                <p>Credit Card Name :
                    <input type="text" id="ccname" name="ccname" value="$ccname">
                </p>
                <p>Credit Card Type :
                    <select name="cctype" required>
                        <option value="Visa">Visa</option>
                        <option value="Mastercard">Mastercard</option>
                        <option value="American Express">American Express</option>
                        <option value="Discover">Discover</option>
                        <option value="Diners Club">Diners Club</option>
                        <option value="Maestro">Maestro</option>
                        <option value="Verified By Visa">Verified By Visa</option>
                        <option value="Visa Electron">Visa Electron</option>
                    </select>
                    <p>Credit Card Number :
                        <input type="text" minlength="16" id="ccnumber" name="ccnumber" value="$ccnumber">
                    </p>
                    <p>Credit Expiry Date : Month :
                        <select name="ccexpdatemonth" required>
                            <option value="1">1</option>
                            <option value="2">2</option>
                            <option value="3">3</option>
                            <option value="4">4</option>
                            <option value="5">5</option>
                            <option value="6">6</option>
                            <option value="7">7</option>
                            <option value="8">8</option>
                            <option value="9">9</option>
                            <option value="10">10</option>
                            <option value="11">11</option>
                            <option value="12">12</option>
                        </select> <span>Year : <select name="ccexpdateyear" required>
                    <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>
                    </select></span>

                        <p>Credit Card CVC :
                            <input type="text" minlength="3" id="cccvc" name="cccvc" value="$cccvc">
                        </p>
            </dd>
        </form>
    </div>
    <div style="visibility:hidden;position:relative;top:-110px;margin-top:-110px" id="paypalformContainer">
        <form id="paypalform">
            <label>Enter your Paypal Details</label>
            <br>
            <br>
            <dd>Paypal Address :
                <input type="text" id="paypal" name="paypal" value="$paypal">
            </dd>
        </form>
    </div>
    <br>
    <div id="float_right">
        <input type="submit" name="submit3" value="Pay Now">
    </div>

查询方法

<html>
<head>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'></script>
<script type='text/javascript'>
function displayForm(c) {
    if (c.value == "2") {    
        jQuery('#paypalformContainer').toggle('show');
        jQuery('#ccformContainer').hide();
    }
        if (c.value == "1") {
         jQuery('#ccformContainer').toggle('show');
         jQuery('#paypalformContainer').hide();
    }
};
</script>

</head>
<body>
<form>
    <input value="1" type="radio" name="formselector" onClick="displayForm(this)"></input>Via Credit Card
    <div style="display:none" id="ccformContainer">
        <form id="ccform"> 
        <label>Enter your credit card details :</label>
        <br>
        <br>
        <dd>
            <p>Credit Card Name :
                <input type="text" id="ccname" name="ccname" value="$ccname">
            </p>
            <p>Credit Card Type :
                <select name="cctype" required>
                    <option value="Visa">Visa</option>
                    <option value="Mastercard">Mastercard</option>
                    <option value="American Express">American Express</option>
                    <option value="Discover">Discover</option>
                    <option value="Diners Club">Diners Club</option>
                    <option value="Maestro">Maestro</option>
                    <option value="Verified By Visa">Verified By Visa</option>
                    <option value="Visa Electron">Visa Electron</option>
                </select>
                <p>Credit Card Number :
                    <input type="text" minlength="16" id="ccnumber" name="ccnumber" value="$ccnumber">
                </p>
                <p>Credit Expiry Date : Month :
                    <select name="ccexpdatemonth" required>
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                        <option value="4">4</option>
                        <option value="5">5</option>
                        <option value="6">6</option>
                        <option value="7">7</option>
                        <option value="8">8</option>
                        <option value="9">9</option>
                        <option value="10">10</option>
                        <option value="11">11</option>
                        <option value="12">12</option>
                    </select> <span>Year : <select name="ccexpdateyear" required>
                <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>
                </select></span>

                    <p>Credit Card CVC :
                        <input type="text" minlength="3" id="cccvc" name="cccvc" value="$cccvc">
                    </p>
        </dd>
        <form>
    </div>
    <br>
    <input value="2" type="radio" name="formselector" onClick="displayForm(this)"></input>Via Paypal
    <div style="display:none" id="paypalformContainer">
        <form id="paypalform">
        <label>Enter your Paypal Details</label>
        <br>
        <br>
        <dd>Paypal Address :
            <input type="text" id="paypal" name="paypal" value="$paypal">
        </dd>
        </form>
    </div>

    <div id="float_right">
        <input type="submit" name="submit3" value="Pay Now">
    </div>
</form>

</body>
<html>

【讨论】:

  • 呃........我很困惑。你的表格和我的一模一样。我按照您在第一次回复中发给我的说明进行操作。你没有改变任何东西。如果这对你有用,那为什么它对我不起作用?
  • 我终于看到了你所做的改变:你从最初的
    中删除了
  • 哦,我现在开始工作了。谢谢))))不幸的是,我不能“投票”,因为我是新用户。
  • 我不认为您可以给我一些提示,告诉我如何将每个表单放在自己的单选按钮下?我的意思是:“信用卡”的表格将显示在信用卡单选按钮下方。
  • 顺便说一句,如果此解决方案适合您,请不要忘记单击我的答案旁边的复选标记以接受它作为解决方案。
【解决方案2】:

第二种形式显示在下方的原因是因为您使用的是visibility:hidden。这隐藏了元素,但它仍然占据了它可见时的位置。
试试display:none 和display:inline,而不是seems to work。

【讨论】:

  • 谢谢,克里斯蒂安。它就像一个魅力。 ))))) 我不认为你可以给我提示如何将每个表单放在它自己的单选按钮下?我的意思是:“信用卡”表单将显示在信用卡单选按钮下方。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-19
  • 1970-01-01
  • 2021-07-17
  • 2022-11-25
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
相关资源
最近更新 更多