$('#form').submit(function(event){
// The method's values go here
event.preventDefault();
}, false); // This is a boolean (It converts all the values contained in the callback to a boolean value)
$(document).ready(function(){
$("#submitForm").submit(function(e) {
console.log("Submitted")
e.preventDefault(); // avoid to execute the actual submit of the form.
});
})
8条答案
按热度按时间ikfrs5lh1#
如果你需要做的只是防止默认操作,你可以提供
false
而不是函数:字符串
enxuqcxy2#
我无法让张贴的答案工作,只有提供假不是我的选择.我发现这工作:
字符串
qij5mzcb3#
尝试使用
return false
代替event.preventDefault()
,或者接受event
作为函数的参数。字符串
不知道为什么有些人认为这不再工作,但这里有一个例子表明它仍然工作。
https://jsfiddle.net/138z5atq/
注解掉事件处理程序,它将发出警报。
对于
stopPropagation()
和stopImmediatePropagation()
,它们根本不会阻止表单提交,只是阻止事件在dom中冒泡。s1ag04yj4#
另一种方法是:
字符串
hrirmatl5#
为了扩展steveukx的答案,我通常喜欢这样做:
字符串
mkshixfv6#
我还注意到(至少在Chrome上),如果你在一个Promise或一个异步函数之后运行e.preventDefault(),像这样:
字符串
这个previous不起作用。你必须在任何其他代码之前声明它,像这样:
型
v7pvogib7#
正如Damian Czapiewski在评论中指出的那样:
也许你引用了一个表单,然后它就可以通过DOM访问了。把代码放在onload回调中,再把事件参数传递给提交事件的回调。
我的问题确实是由于试图在表单可用之前引用它而引起的。在jQuery就绪检查中移动我的调用导致preventDefault()工作。
字符串
m1m5dgzv8#
在我的例子中,
preventDefault
没有工作,因为我的包含表单的模型在另一个表单中。所以,实际上,它是表单中的表单。我用react portals修复了它。