这是我的代码,尽可能简单:
<form action="">
<input type="text">
<input type="submit" value="submit">
</form>
$("form").submit(function(e){
e.stopPropagation();
e.preventDefault();
e.submit(); // tried also: $(this).submit()
});
我在这里做错了什么?为什么不发送?
答案 0 :(得分:2)
e.target.submit();
如果在native元素而不是jQuery元素上调用submit,则jQuery事件处理程序将被忽略。
答案 1 :(得分:1)
删除preventDefault
,它会阻止表单提交。
$("form").submit(function(e){
e.stopPropagation();
//e.preventDefault();
return true;
});
答案 2 :(得分:1)
您应该直接在表单上使用.submit()
方法:
$("form").submit();
答案 3 :(得分:0)
现在编写代码的方式是处理表单的提交事件并尝试提交。如果你检查了e,你会发现它是一个事件而不是实际的形式。只需单击“提交”按钮即可提交表单。如果你想在提交之前预防并做某事,可以这样做:
<form action="" id="myForm">
<input type="text">
<input type="button" value="submit" id="myButton">
</form>
$("#myButton").click(function(){
$(this).stopPropagation();
$(this).preventDefault();
//do what you need to do
$("#myForm").submit();
});
在您的原始代码中,如果您实际上在最后提交表单,则会导致无限循环。