gpt4 book ai didi

javascript - 如何仅使用 javascript 和 css 隐藏和显示表单内部的 div

转载 作者:行者123 更新时间:2023-11-28 07:31:49 25 4
gpt4 key购买 nike

我有一个表单,其中有几个 div,将某些输入字段组合在一起。我想在页面最初加载时隐藏其中一些 div(以及这些 div 中的输入字段)。这很容易通过 display:none 属性来实现。然后,我想在用户单击显示/隐藏按钮时显示那些隐藏的 div 及其输入字段。我在这个元素中只使用 javascript 和 css(没有 jquery)。

我有一个基本的 javascript 函数,可以通过单击按钮交替隐藏 (display:none) 或显示 (display:block) div。当我在 div 不是表单一部分的测试页面上使用该函数时,该函数工作得很好。但是,当我尝试对表单的 div 部分(即内部)使用相同的功能时,它不起作用。实际上,它似乎有效,但随后几乎立即恢复到显示设置的初始状态。我有一种感觉,问题在于我的 div 在表单中,但我不明白为什么这会成为问题。我应该怎么做才能更正此问题,以便表单中的 div 可以通过按钮的切换来隐藏/显示。

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Untitled Document</title>
<style>
#random {
width: 600px;
min-height: 50px;
background-color:#E01418;
color:#B5F0B9;
display: block;
}
#hideshow {
width: 600px;
min-height: 50px;
background-color:#223FCD;
color:#F2D595;
display:block;
}
</style>
</head>

<body>

<form id="myform" name="myform" method="post" action="">
<div id="random">
<input type="text" id="firstname" name="firstname" placeholder="firstname">
<input type="text" id="lastname" name="lastname" placeholder="lastname">
<input type="email" id="email" name="email" placeholder="email">
</div>

<div id="hideshow">
<input type="password" id="password" name="password" placeholder="password">
<input type="text" id="address" name="address" placeholder="address">
<input type="text" id="phone" name="phone" placeholder="phone">
</div>
<input type="submit" id="submit" name="submit" value="Update">
<button id="togglehideshow">Hide/Show</button>
</form>

<script>

var button = document.getElementById('togglehideshow');

button.onclick = function() {
var div = document.getElementById('hideshow');
if (div.style.display !== 'none') {
div.style.display = 'none';
}
else {
div.style.display = 'block';
}
};

</script>

</body>

</html>

最后一件事 - 我使用的按钮不是表单的提交按钮。我只是不想让任何人对此感到困惑。提前感谢您的帮助!

最佳答案

为显示和隐藏 div 的按钮添加 type = button。

<button type="button" id="togglehideshow">Hide/Show</button>

这是因为按钮在隐藏 div 后尝试提交表单。

关于javascript - 如何仅使用 javascript 和 css 隐藏和显示表单内部的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31460205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com