我正在尝试隐藏或显示联系人表单的电子邮件/电话号码部分,这取决于用户是选择电话还是电子邮件单选按钮,但我不知道为什么它对我不起作用。我已经搜索了stack overflow & w3Schools,我非常确定我使用的语法是正确的,但根据单选按钮的不同,它仍然不会显示/隐藏。任何帮助都将不胜感激!
HTML
<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
#email {
display:none;
}
#phonenumber {
display:none;
}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"; }
}发布于 2014-07-06 18:38:16
checked属性,因为单击将始终选中该单选按钮。您可以使用一个通用函数来实现此目的,如下所示:
hide。showHide(this) onClick of both radioscss
.hide {
display:none;
}js
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');
}
}发布于 2018-04-17 04:11:07
直接在javascript中应用它会更快:
$(‘#id-.css’)块(‘显示’,‘块’);
$('#id-element').css('display','none');
https://stackoverflow.com/questions/24594878
复制相似问题