用Javascript检测取消的表单发布
Detect cancelled form post with Javascript
我正在做一个有很多抽象的web项目——很多代码都藏在视图模板、公司内部javascript库等中。
有人要求我"劫持"表单提交按钮,在提交表单时禁用它们,以禁止额外的点击。问题是,我仍然需要提交按钮,因为它在99%的系统中用作表单输入(不是最佳实践,但我没有写那个代码!)
我所做的是,当用户点击"保存",该按钮被隐藏使用jQuery和一个完全重复的是禁用旋转图标放在它的位置:
function showSpinningButton(button){
$(button).hide();
clone = $(button).clone();
clone.prop('disabled', true);
$(button).parent().append(clone);
clone.show();
}
这在标准用例中有效,但利基用例是验证——我没有办法检测表单何时无效,按钮何时需要重置为标准。这尤其麻烦,因为所有的验证都是在面向外部的Javascript库中完成的,我不允许修改这些库。
要点是:是否有一个DOM事件被触发时,已提交的表单被取消(即onclick="返回false;"),我可以附加一个处理程序来重置按钮?
您可以在验证函数上使用包装器:
var oldHandler = form.prop("onsubmit");
form.removeProp("onsubmit").submit(function(e) {
var result = oldHandler.call(this, e);
if (result == false) {
// reset your button
}
return result;
});
相关文章:
- 使用javascript取消隐藏和隐藏表单中的某些元素
- Javascript使用Confirm取消表单提交
- 选择文件(表单提交)后无法单击“取消”按钮
- Jquery:如何处理"停止/取消”;用户停止表单提交时的事件
- JavaScript确认取消在Laravel表单上不起作用
- 取消“确认表单重新提交”对话框
- 取消绑定后未提交的表单
- javascript确认取消仍然提交表单
- 无法隐藏/取消隐藏表单内的按钮
- 在 Rails 表单中,如何使用 Jquery 隐藏和取消隐藏表单元素?我的脚本不起作用
- 如何在多页面中制作一个 JavaScript 表单向导,其中包含下一页,并取消并返回并提交最后一页
- 停止/取消表单 j查询表单操作从 JavaScript
- 取消表单提交,但允许输入键事件
- 按钮点击jquery取消表单和重定向页面
- 使用javascript验证密码并取消表单提交
- 表单提交将取消URL查询字符串中的一个参数
- 使用“取消”按钮单击“提交”按钮后阻止表单提交
- 通过取消选中复选框提交表单
- 当使用return false时,javascript确认(取消)仍然提交表单
- Javascript:如何取消表单提交而不返回false