javascript - 如何根据单选按钮选择显示和隐藏输入
问题描述
我希望在选择国家“加拿大”时显示“邮政编码”框,并在选择国家“美国”时显示“邮政编码”框,但是我似乎无法让一个框消失另一个出现。
function yesnoCheck() {
if (document.getElementById('Canada').checked) {
document.getElementById('ZIP').style.visibility = 'hidden';
}
<body>
Country
<br> Canada <input type="radio" onclick="javascript:yesnoCheck();" name="country" id="Canada" checked> USA <input type="radio" onclick="javascript:yesnoCheck();" name="country" id="USA"> Other <input type="radio" onclick="javascript:yesnoCheck();" name="country"
id="Other">
<br>
<br>
<div id="Postal">
<label for="PostalCA">Postal Code</label>
<input type="text" id="Postal" name="Postal" placeholder="Your Postal Code">
<br>
</div>
<div id="ZIP">
<label for="PostalUSA">ZIP Code</label>
<input type="number" id="ZIP" name="ZIP" placeholder="Your ZIP code">
<br>
</div>
</body>
我究竟做错了什么?
解决方案
这不需要 JS。这在 CSS 中非常简单:
#Postal,
#ZIP {
display: none;
}
#Canada:checked~#Postal {
display: block;
}
#USA:checked~#ZIP {
display: block;
}
<body>
Country
<br> Canada <input type="radio" name="country" id="Canada" checked> USA <input type="radio" name="country" id="USA"> Other <input type="radio" name="country" id="Other">
<br>
<br>
<div id="Postal">
<label for="PostalCA">Postal Code</label>
<input type="text" id="PostalCA" name="Postal" placeholder="Your Postal Code">
<br>
</div>
<div id="ZIP">
<label for="PostalUSA">ZIP Code</label>
<input type="number" id="PostalUSA" name="ZIP" placeholder="Your ZIP code">
<br>
</div>
</body>
推荐阅读
- jquery - YouTube 在弹出模式中嵌入默认加载低质量的预览图像
- xcode - 将 exportOptions.plist 镜像到 Jenkinsfile?
- javascript - 根据第一个单元格的值隐藏 JavaScript 中的表格行
- css - 如何更正 CSS 字体大小计算以限制字体大小
- python - 如何修复:通过将字符串与 JSON 进行比较来解决 Unicode 问题
- r - R read_excel 或 readxl 具有多个工作表的多个文件 - 绑定
- docker - 我的自定义 Docker 映像没有网络
- oracle - 选择缩写时区
- date - Unix Epoch 时间在闰涂抹时钟上的表现如何?
- python - 如何修复打开/读取 json 文件?