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

Javascript 获取jQuery事件处理程序中取消按钮上的确认对话框的结果,javascript,jquery,onclicklistener,confirm,Javascript,Jquery,Onclicklistener,Confirm,一方面,我有一个带有提交/取消按钮的表单,取消有一个onclick事件(用于执行一些清理),该事件包装在一个标准的确认对话框中。所有标准的东西 但是我还有第二个脚本(它必须是第二个脚本),有时可能会被加载,如果表单被取消,则需要添加更多任务。所以-我可以听一听那首歌 $( "#cancelBtn" ).on( "click", function(a) { // do more stuff... }); 但我只想“做更多的事情”,如果onclick周围的确认是确定的。我可能错过了一些愚蠢

一方面,我有一个带有提交/取消按钮的表单,取消有一个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.
    }
});

希望这有帮助。

编辑:由于无法更改执行表单职责的脚本,解决方案是覆盖
确认()
-函数:

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


将第二个脚本中的任务放入

function doMoreStuff(){
    //more tasks
}
在你的确认条款中这样称呼它

if (typeof doMoreStuff === "function") {
    doMoreStuff();
}
try {
    doMoreStuff();
}
catch(err) {
    //no second script loaded
}
还是像这样

if (typeof doMoreStuff === "function") {
    doMoreStuff();
}
try {
    doMoreStuff();
}
catch(err) {
    //no second script loaded
}

两次尝试都很好,我感谢你。我应该在问题中清楚说明,我不能改变履行形式职责的脚本。逻辑必须在第二个脚本中。我用覆盖的
confirm()
-函数更新了答案。希望有帮助!谢谢你,克里斯。我开始认为我最好的方法是完全重新审视这个结构。我感到惊讶的是,无法判断“onclick”脚本是否已运行或已被确认停止。我真的在想我忽略了一些基本的东西!老答案,但仍然有帮助。谢谢