如何阻止表单使用jquery提交?
我尝试了一切 - 看到我在下面尝试过的3个不同的选项,但这一切都行不通:
$(document).ready(function() {
//option A
$("#form").submit(function(e){
e.preventDefault();
});
//option B
$("#form").submit(function(e){
stopEvent(e);
});
//option C
$("#form").submit(function(){
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
可能有什么不对?
更新 - 这是我的HTML:
<form id="form" class="form" action="page2.php" method="post">
<!-- tags in the form -->
<p class="class2">
<input type="submit" value="Okay!" />
</p>
</form>
Run Code Online (Sandbox Code Playgroud)
这里有什么不对吗?
Phi*_*rie 232
两件事突出:
form.而是通过删除#来引用标记.这e.preventDefault也是正确的JQuery语法,例如
//option A
$("form").submit(function(e){
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)选项C也应该有效.我不熟悉选项B.
一个完整的例子:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type='text/javascript'>
$(document).ready(function() {
//option A
$("form").submit(function(e){
alert('submit intercepted');
e.preventDefault(e);
});
});
</script>
</head>
<body>
<form action="http://google.com" method="GET">
Search <input type='text' name='q' />
<input type='submit'/>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
Art*_*lev 28
您可能在页面上使用了少量表单并使用$('form').submit()将此事件添加到页面上第一次出现的表单中.请改用类选择器,或尝试这样做:
$('form').each(function(){
$(this).submit(function(e){
e.preventDefault();
alert('it is working!');
return false;
})
})
Run Code Online (Sandbox Code Playgroud)
或更好的版本:
$(document).on("submit", "form", function(e){
e.preventDefault();
alert('it works!');
return false;
});
Run Code Online (Sandbox Code Playgroud)
The*_*pha 18
要提前默认/阻止表单提交使用
e.preventDefault();
Run Code Online (Sandbox Code Playgroud)
停止事件冒泡使用
e.stopPropagation();
Run Code Online (Sandbox Code Playgroud)
为了防止表单提交'return false'也应该工作.
我也有同样的问题.我也尝试了你尝试过的东西.然后我改变我的方法不使用jquery,而是使用form标签中的"onsubmit"属性.
<form onsubmit="thefunction(); return false;">
Run Code Online (Sandbox Code Playgroud)
有用.
但是,当我试图仅在"thefunction()"中设置false返回值时,它并不会阻止提交过程,所以我必须把"return false;" 在onsubmit属性中.所以,我得出结论,我的表单应用程序无法从Javascript函数获取返回值.我对此一无所知.
小智 5
我遇到了同样的问题,我以这种方式解决了(不优雅但有效):
$('#form').attr('onsubmit','return false;');
Run Code Online (Sandbox Code Playgroud)
在我看来,它的优势在于您可以随时恢复这种情况:
$('#form').attr('onsubmit','return true;');
Run Code Online (Sandbox Code Playgroud)
小智 5
将事件附加到提交元素而不是表单元素。例如在你的html中这样做
$('input[type=submit]').on('click', function(e) {
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)