2011-11-23 47 views
-1

我有以下功能,將顯示一個模式:顯示模式時,使用JavaScript確認

confirmModal: function (message) { 

// CODE TO SHOW MODAL HAS BEEN REMOVED FOR THIS QUESTION // 

} 

而且因爲它被命名空間,它被稱爲像:uiModal.confirmModal('Test message');

的模式裏面我有兩個按鈕:

<button class="cancel">Cancel</button> 
<button class="ok">Ok</button> 

現在我想要做的是兩兩件事:

  1. 當我做類似的事情:onsubmit="confirm('Are you sure?');"onclick="confirm('Are you sure?');"它會顯示模式而不是警告框。請注意,它需要適用於鏈接和表單提交。

  2. 模式中的兩個按鈕需要取消或允許請求發生。我已經取消了關閉模式的罰款,所以這只是允許或拒絕請求發生的情況。

任何人都可以幫忙嗎?我在這裏查看了一些其他問題,並看到了有關使用window.location($(this).attr('href'))的一些問題,但這隻適用於鏈接,不適用於提交表單。我也看着做window.confirm = uiModal.confirmModal('message');但我會怎麼用,在我的一個onclick或的onsubmit

感謝

+0

不知道我真正理解這個問題,但你有沒有想過只是結合的提交按鈕這個動作:

你可以做這樣的事情解決了嗎?然後等待用戶的輸入取消默認的提交事件或讓它冒泡? – alonisser

回答

1

這行不通,因爲confirm是一個阻塞調用的例子(的JavaScript不會當對話框打開繼續),而你的模態對話框不是。

// have some temp var that holds confirmation state 
var isConfirmed = false; 
$("form").submit(function() { 
    // when someone tries to submit the form, verify whether it's confirmed 
    if (!isConfirmed) { 
     // show modal dialog 

     // prevent direct submit 
     return false; 
    } 
}); 

// when hitting the OK button in the modal, change the confirmation state 
$(".modal .ok").click(function() { 
    isConfirmed = true; 
    // and re-submit the form 
    $("form").submit(); 
});