jQuery submit()不能同时使用click()吗?

时间:2017-02-01 13:47:59

标签: jquery html forms

基本上,我有一张表格:

<div id="butt_click">
    <p><b>3E. Submit</b></p>
    <div id="signup_feedback"></div>
    <form action="#" id="signup_form">
        <p>Email: <input type="email" id="user_email" /></p>
        <input class="sign_up" type="submit" value="Sign up" />
    </form>
</div>

这是我的jQuery:

/* for all sign_up buttons */
$('input.sign_up').click(function() {
    event.preventDefault();
    $(this).attr('value', 'Please wait...');
    $(this).attr('disabled', true);

});

$('form#signup_form').submit(function() {
    event.preventDefault();
    var user_email=$('#user_email').val();
    alert(user_email);
    $('#signup_feedback').html('Thanks, ' + user_email +'has been signed up.');
});

仅触发了点击事件。表格无法提交。

当我删除整个click()部分时,submit()部分正常工作。

有谁知道哪个部分出了问题?

2 个答案:

答案 0 :(得分:4)

在点击部分中,您有代码。阅读Docs

event.preventDefault();

这会阻止提交表单的默认行为。

答案 1 :(得分:4)

不要这样做。提交按钮上的click处理程序内部的逻辑应该(几乎在所有情况下)与表单上submit处理程序内部的逻辑完全相同。

更重要的是,您不必click提交按钮以提交表单,您只需选中提交按钮并按Enter / return即可完全绕过你的点击处理程序

因此,请完全摆脱click处理程序,并将所有逻辑放在submit处理程序中。