Javascript 显示/隐藏内联表单

Javascript 显示/隐藏内联表单,javascript,html,css,forms,Javascript,Html,Css,Forms,我的网页上有一个内联表单,当加载页面时,它被css隐藏。我还有一个按钮来显示表单。但是,如果再次单击表单,我希望该按钮隐藏表单。但我似乎无法让它工作,相反,当我单击“内联表单”按钮时,表单消失了,尽管我从未为它分配过函数 这是我的HTML <button id="signup" onclick="showForm('inline')">SignUp!</button> <!-- hidden inline form --> &

我的网页上有一个内联表单,当加载页面时,它被css隐藏。我还有一个按钮来显示表单。但是,如果再次单击表单,我希望该按钮隐藏表单。但我似乎无法让它工作,相反,当我单击“内联表单”按钮时,表单消失了,尽管我从未为它分配过函数

这是我的HTML

<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();
});
​