forms - 显示块隐藏/显示 onClick 仅适用于表单之外
问题描述
我正在尝试理解并让以下隐藏/显示切换起作用。
仅当 onclick 按钮位于 <form></form> 元素之外时,隐藏/显示脚本才有效。如果我把按钮放在里面,那么 div 不会保持隐藏状态,它会被隐藏一会儿然后马上回来。谁能帮我弄清楚我做错了什么以及如何让它在表单元素中工作?
测试的浏览器:Chrome、Vivaldi、FireFox、Safari、Maxthon、Brave、Opera、Roccat
我的代码是
<head>
<title>Toggole Hide Show Button</title>
</head>
<body>
<h1>Hide Show Button</h1>
<br><br>
<br><br>
<form>
<input type="hidden" name="zz" value="abc">
<div id="toggle-div">
Lorem Adipiscing Elit<br><br>
Lorem Ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea.
</div>
<button onclick="myFunction()">Hide Show</button><br>
<input type="submit" value="Save Form">
</form>
</body>
</html>
<script>
function myFunction(){
var x=document.getElementById("toggle-div");
if (x.style.display === "none") {
x.style.display= "block";
}else{
x.style.display = "none";
}
}
</script>```
解决方案
推荐阅读
- unit-testing - Grails:控制器单元测试,动作的职责应该是什么?
- jquery - iOS Safari 中的 $.getScript 错误 - 适用于 Chrome
- python - 基本无法得到我想要的时期
- node.js - 设置 GitLab CI/CD 以将多个存储库部署到 DigitalOcean Droplet 上的 Docker 容器
- file - 如何在不修改名称的情况下使用 ls 列出文件
- html - Angular:如何使用打字稿变量控制 Select 元素的“Size”属性?
- postgresql - Postgres jsonb:查询多级
- java - 防止 JUnit 测试卡在 while 循环中
- javascript - Sequelize ORM,获取具有附加条件的关联项目的计数
- javascript - 如何用正则表达式匹配一系列字符来替换它们?