Javascript 显示/隐藏内联表单
我的网页上有一个内联表单,当加载页面时,它被css隐藏。我还有一个按钮来显示表单。但是,如果再次单击表单,我希望该按钮隐藏表单。但我似乎无法让它工作,相反,当我单击“内联表单”按钮时,表单消失了,尽管我从未为它分配过函数 这是我的HTMLJavascript 显示/隐藏内联表单,javascript,html,css,forms,Javascript,Html,Css,Forms,我的网页上有一个内联表单,当加载页面时,它被css隐藏。我还有一个按钮来显示表单。但是,如果再次单击表单,我希望该按钮隐藏表单。但我似乎无法让它工作,相反,当我单击“内联表单”按钮时,表单消失了,尽管我从未为它分配过函数 这是我的HTML <button id="signup" onclick="showForm('inline')">SignUp!</button> <!-- hidden inline form --> &
<button id="signup" onclick="showForm('inline')">SignUp!</button>
<!-- hidden inline form -->
<div id="inline">
<h2>Register! It's free!</h2>
<form id="register" action="#" method="post" name="register">
<label for="email">Email:</label>
<input id="email" class="txt" type="email" name="email" />
<label for="password">Password:</label>
<input id="password" class="passtxt" type="password" name="password" />
<label for="password">Repeat Password:</label>
<input id="password" class="passtxt" type="password" name="password" />
<button id="registerbtn">Register</button>
</form>
</div>
当我点击注册按钮时,表单显示。但是,如果我再次单击它,什么也不会发生。但是如果我点击表单中的注册按钮,它就会消失。为什么?我怎样才能修好它
编辑:我选择了DaveHogan的答案作为最佳答案,因为这正是我想要的。但是我已经转而使用JQuery,如果您正在阅读本文的话。你也应该换一下 您似乎没有正确检查相等(使用双相等)
如果要使用jQuery,可以使用toggle:)
omg
切换我
$('#bar').bind('click',function(){
$('#foo').toggle();
});
您必须记住,“=”与“==”不同,=”用于赋值,==用于提问,类似于这样。。。A=B,在这种情况下,您被指定A等于B,如果您写A==B,您会问A是否等于B您考虑过使用jQuery吗?您的代码不仅会更短、更容易理解,而且可以在所有浏览器上使用。我甚至都没想过要试试……谢谢。它起作用了!但是如果我点击注册表,表单仍然会消失。当你点击表单标签中的按钮时,它会发布数据。该网页实际上是重新加载的,失去了上一页的状态。是的,我想我应该改为使用jQuery。谢谢
function showForm(form) {
var e = document.getElementById(form);
if (e.style.display = 'none')
e.style.display = 'inline';
else
e.style.display = 'none';
}
if (e.style.display == 'none')
<div id="foo">omg </div>
<button id="bar">toggle me</button>
$('#bar').bind('click' , function() {
$('#foo').toggle();
});