javascript - 使用 Javascript 隐藏或显示表单元素,部分工作
问题描述
单击时,只有最后一对单选按钮可以显示该last name
字段subscribe
。
The target is that whenever one or more subscribe
is selected, the last name
field is always shown. 选择否时unsubscribe
,该last name
字段被隐藏。单击各种单选按钮应创建这些结果。提前致谢。
简单的 HTML 表单
<form>
Adhoc <br>
<input class="subscribe" type="radio" name="news_adhoc" onClick="test();"> subscribe <br>
<input class="unsubscribe" type="radio" name="news_adhoc" onClick="test();"> unsubscribe <br>
<hr> news_newsletter <br>
<input class="subscribe" type="radio" name="news_newsletter" onClick="test();"> subscribe <br>
<input class="unsubscribe" type="radio" name="news_newsletter" onClick="test();"> unsubscribe <br>
<hr>
<input type="text" name="first_name" placeholder="First Name">
<input type="text" name="last_name" id="IdLastName" placeholder="Last Name" style="display:none">
<input type="text" name="email" placeholder="Email">
<hr>
</form>
脚本并感谢 Randy Casburn 早期的帮助。
<script type = "text/javascript" >
function test() {
var subscr = document.getElementsByClassName("subscribe");
var unsubscr = document.getElementsByClassName("unsubscribe");
var lastName = document.getElementById("IdLastName");
for (var i = 0; i < subscr.length; i++) {
if (subscr[i].checked) {
lastName.style.display = "";
} else {
lastName.style.display = "none";
}
}
}
解决方案
尝试(你写关于 first_name,但你的代码片段显示/隐藏 last_name - 所以我展示了如何为姓氏做 - 将此更改更改var lastName = document.getElementById("2");
为var lastName = document.getElementById("1");
(我只编辑 JS 代码 - HTML 未更改)
function test() {
var subscr = document.getElementsByClassName("subscribe");
var lastName = document.getElementById("2");
lastName.style.display = "none";
let show=false;
for (var i = 0; i < subscr.length; i++) {
if(subscr[i].checked) show=true;
}
if(show) lastName.style.display = "";
}
<form>
Adhoc <br>
<input class="subscribe" type="radio" name="news_adhoc" onClick="test();"> subscribe <br>
<input class="unsubscribe" type="radio" name="news_adhoc" onClick="test();"> unsubscribe <br>
<hr> news_newsletter <br>
<input class="subscribe" type="radio" name="news_newsletter" onClick="test();"> subscribe <br>
<input class="unsubscribe" type="radio" name="news_newsletter" onClick="test();"> unsubscribe <br>
<hr>
<input type="text" name="first_name" id="1" placeholder="First Name">
<input type="text" name="last_name" id="2" placeholder="Last Name" style="display:none">
<input type="text" name="email" id="3" placeholder="Email">
<hr>
</form>
推荐阅读
- php - PHP在循环中获取每N个项目,但将它们按6组分组
- spring-boot - SpringBoot devtools如何检测应用程序的运行环境?
- amazon-web-services - 用于 SSL 卸载的 AWS HSM(硬件安全模块)缓慢?
- thread-safety - Guava 的 HashFunction 是线程安全的吗?
- python-3.x - 我在哪里可以获得 Python 3 中 print 函数的 kwargs 列表?
- ios - AVCapturePhotoOutput - 不能重复使用设置
- python - 删除 python 路径硬编码和传递列表
- c++ - C++ 通过映射从基类实现派生类并使用来自
- c# - 变量被重置为零
- excel - Excel对象图通过VBA可见和不可见