2

我有一个表格:

<form action="thanks.php" onsubmit="return false" class="submitForm">
... Some Inputs ...
</form>

和一个jQuery代码:

$(document).ready(function() {
       $("form.submitForm").on("submit", function() {
        $("form.submitForm").attr("onsubmit", "return true");
        $("form.submitForm").submit;
    });
});

现在我喜欢用 jQuery 代码提交表单。它有效,但仅在第二次输入或提交时...我不明白为什么它不起作用...

谢谢你的帮助!

对不起我的英语错误,我来自德国。

4

1 回答 1

2

为什么它不提交:

您的表单未提交,因为您具有onsubmitto 的属性return false。这会阻止表单提交,这可能是您想要的,因为您尝试使用$("form.submitForm").submit;. 不幸的是,这不起作用,因为您需要添加这样的括号:$("form.submitForm").submit();

为什么它第二次提交:

在第一次提交时,您正在阻止默认行为 ( return false),但您正在将onsubmit属性更改为return true. 这将删除您最初的默认预防措施。

所以总的来说,你第一次点击,防止默认行为return false,不提交,因为有一个错误$("form.submitForm").submit;,然后将其更改return false为 true,删除阻止表单提交的内容。

解决方案 :

使用此代码:

$(document).ready(function() {
    $("form.submitForm").on("submit", function(e) {
        e.preventDefault()
        $("form.submitForm").submit();
    });
});

但是,如果您在该代码中没有其他内容,那么为什么兄弟会 preventdefault 然后执行默认行为?

于 2013-06-26T16:40:04.173 回答