【问题标题】:Text box to appear when a radio button is selected选择单选按钮时显示的文本框
【发布时间】:2016-05-14 04:17:43
【问题描述】:

我希望在选择单选按钮时显示一个文本框 yes 。这就是我的代码的样子;

Care of Address? <br>
Yes<input type="radio" name="radio1" value="Yes" onClick="getResults(this)">
No<input type="radio" name="radio1" value="No" onclick="getResults(this)">

<div class="text"><p>Address Line 1  <input type="text" name="text1" id="text1" maxlength="30"></p></div>
<div class="text"><p>Address Line 2 <input type="text" name="text2" id="text2" maxlength="30"></p></div>
<div class="text"><p>Address Line 3  <input type="text" name="text3" id="text3" maxlength="30"></p></div>
<div class="text"><p>Address Line 4 <input type="text" name="text4" id="text4" maxlength="30"></p></div>
<div class="text"><p>Postcode  <input type="text" name="text5" id="text5" maxlength="30"></p></div>

<script> 
    (document).ready(function() {
        (".text").hide()

    });
    function getResults(elem) {
        elem.checked && elem.value == "Yes" ? (".text").show() : (".text").hide();
    };
    </script>

谁能帮帮我

阿比

【问题讨论】:

  • 你可以使用 Vue.js。这很容易。在这里查看文档...vuejs.org

标签: javascript html text radio


【解决方案1】:

试试这个:

function ShowHideDiv() {
        var chkYes = document.getElementById("chkYes");
        var dvtext = document.getElementById("dvtext");
        dvtext.style.display = chkYes.checked ? "block" : "none";
    }
<label for="chkYes">
    <input type="radio" id="chkYes" name="chk" onclick="ShowHideDiv()" />
    Yes
</label>
<label for="chkNo">
    <input type="radio" id="chkNo" name="chk" onclick="ShowHideDiv()" />
    No
</label>
<div id="dvtext" style="display: none">
    Text Box:
    <input type="text" id="txtBox" />
</div>

【讨论】:

  • 这对我很有帮助。谢谢阿比 :)
【解决方案2】:

你甚至不需要 JavaScript,更不用说 JQuery 或 Vue

#dvtext {
  display: none;
}
#chkYes:checked ~ #dvtext {
  display: block;
}
<input type="radio" id="chkYes" name="chk" />
<label for="chkYes">Yes</label>

<input type="radio" id="chkNo" name="chk" />
<label for="chkNo">No</label>

<div id="dvtext">
    Text Box:
    <input type="text" id="txtBox" />
</div>

【讨论】:

  • 我认为这是最好的选择。简单无js。
【解决方案3】:

jquery

$('.no, .yes').click(function() {
   if($('.no').is(':checked')) {
     $('.adrs').hide();
    }
    if ($('.yes').is(':checked')){
         $('.adrs').show();
    }
});

我在 yes 单选按钮中添加了类 yes,在 no 单选按钮中添加了 no。此外,我将类 adrs 添加到作为地址的文本字段中。然后基于类我隐藏地址或显示它

Codepen

【讨论】:

    【解决方案4】:

    您似乎错过了在 (document) 之前和 (.text) 之前添加 $。 请添加 $ 并查看它是否有效。 所以你的脚本会变成这样

    <script> 
    $(document).ready(function() {
        $(".text").hide();
    
    });
    function getResults(elem) {
        elem.checked && elem.value == "Yes" ? $(".text").show() : $(".text").hide();
    };
    </script>
    

    希望这会有所帮助。

    【讨论】:

    • 我应该为所有的 (".text") 像 ($".text") 这样做吗?
    • 我已经更新了我的评论并提供了完整的脚本。
    • @Abi,你试过上面的脚本了吗?
    【解决方案5】:

    这是你应该做的

    div.text{显示:无} 关心地址?

    是的 没有

    <div class="text"><p>Address Line 1  <input type="text" name="text1" id="text1" maxlength="30"></p></div>
    <div class="text"><p>Address Line 2 <input type="text" name="text2" id="text2" maxlength="30"></p></div>
    <div class="text"><p>Address Line 3  <input type="text" name="text3" id="text3" maxlength="30"></p></div>
    <div class="text"><p>Address Line 4 <input type="text" name="text4" id="text4" maxlength="30"></p></div>
    <div class="text"><p>Postcode  <input type="text" name="text5" id="text5" maxlength="30"></p></div>
    
    <script> 
        function getResults(elem) {
    
            elem.checked && elem.value == "Yes" ? $(".text").show() : $(".text").hide();
        };
        </script>
    

    https://jsfiddle.net/2w0zf887/

    【讨论】:

    • 地址行一直出现,当只有是票时不显示?谢谢阿比
    • 你需要添加类文本,显示无检查链接jsfiddle.net/2w0zf887
    【解决方案6】:

    这是给你的小提琴https://jsfiddle.net/Simplybj/mjLwusut/4/

    您可以通过将单选按钮与这样的点击事件绑定来实现此目的

    $('#rdYes').on('click', function() {
      $(".text").show();
    });
    
    $('#rdNo').on('click', function() {
      $(".text").hide();
    });
    

    这是你的 HTML。最好用标签标签包装输入类型。而且,如果您要先隐藏元素,请尝试在 DOM 渲染时隐藏,而不是在 DOM 准备好防止闪烁之后

    Care of Address?
    <br>
    <label for="rdYes">Yes</label>
    
    <input id="rdYes" type="radio" name="radio1" value="Yes" onClick="getResults(this)">
    <label for="rdNo">No</label>
    <input id="rdNo" type="radio" name="radio1" value="No" onclick="getResults(this)" checked="checked">
    <div class="text" style="display:none;">
      <p>Address Line 1
        <input type="text" name="text1" id="text1" maxlength="30">
      </p>
    </div>
    

    【讨论】:

      猜你喜欢
      • 2012-10-01
      • 2013-06-28
      • 2012-12-28
      • 2014-02-06
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多