繁体   English   中英

在 jQuery 事件处理程序中获取取消按钮上的确认对话框的结果

[英]Getting result of Confirm dialog on Cancel Button in jQuery event hander

一方面,我有一个带有提交/取消按钮的表单,并且取消有一个包含在标准确认对话框中的onclick事件(进行一些清理)。 所有标准的东西。

但是后来我有第二个脚本(它必须是第二个脚本),它可能只是有时被加载,如果表单被取消,则需要添加更多任务。 所以 - 我可以听点击...

$( "#cancelBtn" ).on( "click", function(a) {
    // do more stuff...
});

但如果 onclick 周围的确认没问题,我只想“做更多的事情”。 我可能遗漏了一些非常简单的东西,但我一整天都在做这件事,即将放弃! 任何人都可以指出我正确的方向吗?

更新:我无法更改表单 onclick 代码 - 它必须保持独立,就像现在一样......所以确认必须保持原样。

像这样做:

$( "#cancelBtn" ).on( "click", function(a) {
    if (confirm('Are you sure you want to cancel?')) { // Standard confirmation message.
        // Pressed OK.
        // do more stuff...
    } else {
        // Pressed Cancel.
    }
});

希望这可以帮助。

编辑:由于您无法更改执行表单任务的脚本,解决方案是覆盖confirm()函数:

var _confirm = window.confirm;
window.confirm = function() {
    //catch result
    var confirmed = _confirm.apply(window,arguments);
    if (confirmed) {
        //confirm ok, do some tasks
    } else {
        //confirm cancelled, do some cleanup
    }
    //pass result on to the caller
    return confirmed;
};

http://jsfiddle.net/sofcuoab/


将任务放在第二个脚本中

function doMoreStuff(){
    //more tasks
}

并像这样在您的确认子句中调用它

if (typeof doMoreStuff === "function") {
    doMoreStuff();
}

或者像这样

try {
    doMoreStuff();
}
catch(err) {
    //no second script loaded
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM