如何阻止表单使用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)
这里有什么不对吗?
如何在Opera 11中使用HTML5客户端表单验证时阻止表单提交?
这是一个示例测试页面:
<section>
<h2>Test</h2>
<form>
<input type="text" name="test" id="test" required/>
<input type="submit" value="Test" />
</form>
</section>Run Code Online (Sandbox Code Playgroud)
验证在Opera 11中有效,但在输入值后单击按钮时,浏览器会提交表单.
我希望浏览器始终保留在网页上,这对于仅有客户端的脚本而言,只适用于没有服务器的本地硬盘驱动器.
当我添加return false;或尝试阻止表单提交时,验证不再有效.
Opera 11.10 Build 2092
编辑:
感谢robertc的解决方案,我得到了它的工作.这是没有jQuery的测试页面.
(function() {
"use strict";
window.addEventListener("load", function() {
document.getElementById("testForm").addEventListener("submit", function(event) {
event.target.checkValidity();
event.preventDefault(); // Prevent form submission and contact with server
event.stopPropagation();
}, false);
}, false);
}());Run Code Online (Sandbox Code Playgroud)
<section>
<h2>Test</h2>
<form id="testForm">
<input type="text" name="test" id="test" required/>
<input type="submit" value="Test" />
</form>
</section>Run Code Online (Sandbox Code Playgroud)