2013-03-14 100 views
18

我有一個有刪除按鈕的窗體,我想創建一個確認框,彈出窗口,當點擊刪除按鈕時。刪除按鈕目前有效。我已經嘗試了幾個JavaScript的東西,沒有運氣。我正在使用Angular。使用JS爲Angular創建一個確認提醒,使用JS

這是最好的方法嗎?

此外,沒有人知道任何這方面的例子,我還沒有找到任何工作。

$(document).ready(function(){ 
    $("form").validate(); 
    $(".radius small success button").ConfirmDialog('Are you sure?'); 
}); 
+0

如何使用一些真正的代碼而不是僞代碼 - 請告訴我們你已經嘗試了什麼,並指出什麼是不工作的。 – 2013-03-14 22:14:45

+0

@MarkRajcok多數民衆贊成在公平,我已經添加了我的。任何想法我都朝着正確的方向發展? – FluxEngine 2013-03-14 22:24:55

回答

9

這是我們如何處理我們的「確認對話框」(使用引導程序)

標記

<div class="alert alert-block alert-error notification fade in" data-ng-show="displayLocationDeletePopup"> 
    <h6>Are you sure you want to delete this location?</h6> 
    <div class="form-controls-alert"> 
     <a href="" class="btn" data-ng-click="showDeleteLocationPopup(false)">No</a> 
     <a href="" class="btn btn-danger" data-ng-click="deleteVendorLocation(locationId)">Yes</a> 
    </div> 
</div><!-- end alert -->  

設置模式爲false控制器負載在默認情況下ng-show

隱藏
$scope.displayLocationDeletePopup = false; 

在點擊顯示彈出窗口的事件時,調用一個函數/ pa SSE的模型在

<i class="icon-remove" data-ng-click="showDeleteLocationPopup(true, location)"></i> 

在控制器:

$scope.showDeleteLocationPopup = function(options, id) { 
    if (options === true) { 
     $scope.displayLocationDeletePopup = true; 
    } else { 
     $scope.displayLocationDeletePopup = false; 
    } 
    $scope.locationId = id; 
}; 

而且按照上述HTML中的錨,可以關閉彈出或運行函數

$scope.deleteVendorLocation = function (storeLocation) { 
    // Code to run on confirmation    
}; 
+1

我喜歡這個引導用戶。 – 2014-05-15 14:24:02

29

Here的另一在這方面的做法。 基本上它是一個指令,用於獲取要顯示的警告字符串以及在用戶接受時調用的函數。使用示例:

<button type="button" ng-really-message="Are you sure?" 
ng-really-click="delete()">Delete</button> 
+3

一個基本的瀏覽器對話框可以不顯示指令'if(confirim('Are you sure?')){Do Something} – Malkus 2014-05-30 01:28:49

+1

請在答案中包含解決方案的所有代碼。 – Malkus 2014-05-30 01:30:01

+1

他確實包含了所有必要的代碼 - 點擊「這裏」一詞。而且,不,您不能使用ng-click進行確認,因爲您無法在這些表達式中控制流。 – 2014-07-22 22:33:25

39

看起來像AngularJS指令對於解決此問題有點過分。看起來更容易,只是爲了使用直接的JavaScript,除非你需要一些自定義功能到你的「confirm()」函數。

if (confirm('Are you sure you want to delete this?')) { 
    // TODO: Do something here if the answer is "Ok". 
} 

希望這有助於歡呼

UPDATE:其實,有棱有角,這將是更好地使用$ window.confirm因爲這將讓你與噶/茉莉花測試。

+2

好想法。正在尋找 – 2014-09-09 22:34:46

+1

這將工作正常,直到用戶選擇不顯示在Chrome中的警報/確認。在Chrome中,當您獲得確認時,會出現一個複選框「不要顯示此類消息」。它消失了。 – 2016-01-31 19:34:39

+0

當然,但警報是默認打開的。爲了防止這種情況發生,不使用confirm()處理警報框的指令將解決該問題。 – 2016-02-01 20:24:42

-1
var r = confirm("Are you sure you want to Permanently delete this order?"); 
if (r == true) { 
    (OK button click) Write the function here..... 
} else { 
    (Cancle button click) Write the function here..... 
} 
-1

地刪除每個記錄的右側和上單擊刪除選項記錄應該從細節和JSON陣列中刪除選項。