如何避免在出现错误时提交表单
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
如何,都会提交表单。我该如何解决这个问题?切勿自动提交表单。
将按钮类型设置为"按钮"。
按钮:按钮没有默认行为。它可以有客户端 与元素事件关联的脚本,这些脚本在以下情况下触发 事件发生。
<button type="button"...>Search</button>
如果是这种情况,表单根本不会提交,直到您告诉它通过 Javascript 明确提交。
请参阅HTML5规范以了解此简单解决方案。 http://www.w3.org/TR/2011/WD-html5-20110525/the-button-element.html#attr-button-type
将表单的操作设置为不正确的内容,例如 action="error.html"
。 然后,作为表单提交过程的最后一步,将操作动态设置为正确的链接。
您也可以使按钮根本不提交,并手动提交表单:
$('#myForm').submit();
在事件开始时使用 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();
相关文章:
- Jquery提交表单而不刷新
- 如何在提交表单时将PHP变量传递到Javascript cookie中
- 每次提交表单时都会重新加载网页
- Razor中的自动提交表单
- 使用 JavaScript 自动提交表单
- 点击相同的按钮打开模型,然后提交表单
- 添加和删除隐藏字段数组中的值,而不提交表单
- 使用Ajax提交表单
- jQuery:使用“jQuery验证”后无法提交表单's远程验证
- 如何在不重新加载的情况下提交表单,并使用Node+Express将数据传递回同一页面
- 有登录表单时无法提交表单
- 带有select的jquery提交表单不起作用
- 如何防止回车键提交表单,但仍然允许回车工作
- 使用按钮和单选按钮提交表单,但始终使用相同的值
- 在提交表单之前确定重复值
- 如何创建动态ajax提交表单
- HTML提交表单,同时包含空字段检查和按钮隐藏
- 如何使用jQueryAjax使用动态html输入texbox提交表单
- 当触发下拉列表的onchange事件时,使用JavaScript提交表单
- 提交表单后,Watir文本框输入未持续(重置为以前的文本框输入)