我有一张表格:
<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代码提交表单。它工作,但只在第二次输入或提交... 我不明白为什么它不起作用......
感谢您的帮助!
对不起我的英语错误,我来自德国。
答案 0 :(得分:2)
为什么不提交:
您的表单未提交,因为onsubmit
属性为return false
。这会阻止表单提交,这可能是您想要的,因为您尝试使用$("form.submitForm").submit;
重新提交表单。不幸的是,这不起作用,因为你需要添加这样的括号:$("form.submitForm").submit();
为什么第二次提交
在第一次提交时,您正在阻止默认行为(return false
),但您要将onsubmit
属性更改为return true
。这将取消您最初的默认预防。
总的来说,你是第一次clikc,阻止使用return false
的默认行为,因为$("form.submitForm").submit;
中存在错误,然后将return false
更改为true,删除的是阻止表单提交。
解决方案:
使用此代码:
$(document).ready(function() {
$("form.submitForm").on("submit", function(e) {
e.preventDefault()
$("form.submitForm").submit();
});
});
但如果你在该代码中没有其他内容,为什么兄弟会阻止默认然后执行默认行为呢?