无论我做什么,我的表单总是在点击按钮时提交

时间:2014-07-23 22:15:34

标签: javascript jquery html forms

我有一个相对简单的表格。我正在使用jQuery来选择提交按钮,截至目前,我只是在点击时显示警告。

问题:无论我做什么,按钮都在使用它的默认动作。所以基本上没有警报显示,而且我坚持使用提交的参数,这些参数会附加到地址栏中url的末尾。

我尝试过使用e.preventDefault();e.preventDefault(true);e.stopImmediatePropogation()e.stopImmediatePropogation(true);

我甚至尝试将它们放在document.ready()区块中。

注册表格在模式面板中,但我认为这不重要......(应该吗?)

我想现在我会告诉你代码。我真的不明白它为什么不起作用。我很感激任何帮助:

HTML:http://pastebin.com/bHCC58w4(完整文档)

    <form id="registerForm">
        <a class="close"></a>
        <h3>Register Today! - It's FREE!</h3>
        <p>Registering only takes seconds, and puts you into direct contact with a designer. On top of all that, you can add documents, images, and other files to your project dashboard. What are you waiting for? It's free!</p>
        <img src="images/formfish.png" alt="Goldy the goldfish helps users register. It looks like he stepped out for a minute. Sorry about that!" />
        <input type="text" id="name" name="name" placeholder="Your full name." title="We just need your first and last name." class="masterTooltip" />
        <input type="email" id="email" name="email" placeholder="Your email." title="We won't send you spam. Pinky swear." class="masterTooltip"  />
        <input type="text" id="userName" name="userName" placeholder="Your username." title="Your username must be unique." class="masterTooltip" />
        <input type="password" id="password" name="password" placeholder="Your password." title="Make your password hard to guess." class="masterTooltip" />
        <button id="register">Sign up</button>
    </form>

JAVASCRIPT:http://pastebin.com/bD2fYPsh(完整文件)

        $("#register").on("click", function(e){
            e.preventDefault();
            alert("Hello!");
        });

这是该网站的半实时版本。除了jQuery动画之外,它没有其他功能。我不知道它是否会帮助你们:http://graphicgoldfish.com/creativecodefish/

2 个答案:

答案 0 :(得分:5)

更改按钮,使其只是一个按钮,而不是提交按钮:

<button id="register" type="button">Sign up</button>

默认情况下,按钮的类型为submit,这将导致表单本身提交。

答案 1 :(得分:-1)

有一些不同的事件处理程序。我认为你最好使用普通的javascript:

document.getElementById("register").addEventHandler("click", function(e){
    e.preventDefault(); // etc
}