[英]how to prevent form submission in case of valiadtion error with standard form submission?
[英]How to avoid form submission in case of error?
我的表格如下
<form id="myform" class="form-horizontal" class="collapse in">
<fieldset>
<!-- form fields are here -->
<div class="form-actions">
<button class="btn btn-inverse" id="search" name="search" data-loading-text="Searching...">Search</button>
</div>
</fieldset>
</form>
按下按钮后,我会使用以下代码执行操作:
$("#search").click(function() {
try {
// some javascript with syntax error is here
} finally {
return false; // don't submit form automatically
}
});
但是如果我的javascript包含语法错误,那么无论try .. finally
都会提交表单。 我该如何解决这个问题? 表格永远不会自动提交。
将表单的操作设置为不正确的操作,例如action="error.html"
。 然后作为表单提交过程的最后一步,动态地将操作设置为正确的链接。
您也可以根本不提交按钮,并手动提交表单:
$('#myForm').submit();
将按钮类型设置为“按钮”。
按钮:该按钮没有默认行为。 它可以具有与元素事件关联的客户端脚本,这些脚本在事件发生时触发。
<button type="button"...>Search</button>
如果是这种情况,表单将不会提交,直到您告诉它通过Javascript明确提交。
有关此简单解决方案,请参阅HTML5规范。 http://www.w3.org/TR/2011/WD-html5-20110525/the-button-element.html#attr-button-type
在事件开始时使用event.preventDefault
并event.preventDefault
触发提交。
$("#search").click(function(event) {
event.preventDefault();
// some javascript with syntax error is here
var foo = "bar";
alert(foobar); // ERROR
// if syntax error occurs in this scope, the form won't submit
$(this).closest("form")[0].submit();
});
$("#search").click(function(e) {
e.preventDefault();
try {
// some javascript with syntax error is here
} finally {
return false; // don't submit form automatically
}});
在单击功能上,阻止默认操作。 然后,如果代码确实通过,则手动调用提交
$('#myForm').submit();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.