我正在开发一个具有大量抽象的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事件按钮?
答案 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;
});