簡體   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