使用Javascript检测已取消的表单帖子

时间:2014-07-25 16:00:20

标签: javascript jquery html forms

我正在开发一个具有大量抽象的Web项目 - 在视图模板,内部公司javascript库等中存储了大量代码。

我被要求劫持"劫持"表单提交按钮在提交表单时禁用它们,以禁止额外的点击。问题是,我仍然需要提交按钮,因为它在99%的系统中用作表单输入(不是最佳实践,但我没有编写代码!)

我所做的是当用户点击"保存时,"该按钮是使用jQuery隐藏的,并且使用微调器图标禁用的精确副本将放在其位置:

function showSpinningButton(button){
    $(button).hide();

    clone = $(button).clone();

    clone.prop('disabled', true);

    $(button).parent().append(clone);
    clone.show();
}

这适用于标准用例,但是利基案例是验证 - 我无法检测表单何时无效并且按钮需要重置为标准。这尤其麻烦,因为所有验证都是在面向外部的Javascript库中完成的,我不允许修改。

要点是这样的:当提交的表单被取消(即onclick ="返回false;")我可以附加处理程序以重置时,会触发一个DOM事件按钮?

1 个答案:

答案 0 :(得分:0)

您可以在验证功能上使用包装器:

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;
});