首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Javascript显示/隐藏基于单选按钮的字段集

问使用Javascript显示/隐藏基于单选按钮的字段集
EN

Stack Overflow用户
提问于 2014-07-06 18:29:15
回答 2查看 22.3K关注 0票数 1

我正在尝试隐藏或显示联系人表单的电子邮件/电话号码部分,这取决于用户是选择电话还是电子邮件单选按钮,但我不知道为什么它对我不起作用。我已经搜索了stack overflow & w3Schools,我非常确定我使用的语法是正确的,但根据单选按钮的不同,它仍然不会显示/隐藏。任何帮助都将不胜感激!

HTML

代码语言:javascript
复制
<form name="contactForm" id="contactForm" method="post" action="result.php">
                <fieldset>
                    <!-- Client's contact details -->
                    <legend>Contact Details</legend>
                        <label for="fullname">Full Name:</label>
                        <input type="text" name="contact" id="fullname" required>

                        <label>Preferred contact method:</label>
                        <input type="radio" name="contact" value="rdoPhone" id="rdoPhone" checked="checked" onclick="cPhone()" >Phone
                        <input type="radio" name="contact" value="rdoEmail" id="rdoEmail" onclick="cEmail()" >Email

                        <label for="phonenumber">Phone Number:</label>
                        <input type="text" name="contact" id="phonenumber">
                        <label for="email">Email:</label>
                        <input type="text" name="contact" id="email">
                </fieldset>
</form>

CSS

代码语言:javascript
复制
#email {
display:none;
}       
#phonenumber {
    display:none;
}

Javascript

代码语言:javascript
复制
function cPhone() {
if (document.getElementById("rdoPhone").checked)
{ document.getElementById("phonenumber").style.display = "block"; }
}

function cEmail(){
if (document.getElementById("rdoEmail").checked)
{ document.getElementById("email").style.display = "block"; }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-06 18:38:16

  • 由于电话号码在默认情况下处于选中状态,因此最初不应将其隐藏。
  • 单击单选按钮组中的单选按钮时,您不必检查checked属性,因为单击将始终选中该单选按钮。

您可以使用一个通用函数来实现此目的,如下所示:

  • 最初为电子邮件应用下面给出的类hide。
  • 调用下面给出的函数showHide(this) onClick of both radios

css

代码语言:javascript
复制
.hide {
 display:none;
}

js

代码语言:javascript
复制
function showHide(elm) {
 var phone = document.getElementById("phonenumber");
 var email = document.getElementById("email")
 if(elm.id == 'rdoPhone'){
    phone.classList.remove('hide');
    email.classList.add('hide');
 }
 else
 {
    phone.classList.add('hide');
    email.classList.remove('hide');
 }
}

Demo

票数 4
EN

Stack Overflow用户

发布于 2018-04-17 04:11:07

直接在javascript中应用它会更快:

$(‘#id-.css’)块(‘显示’,‘块’);

$('#id-element').css('display','none');

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24594878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档