2013-02-19 16 views
1

我需要創建一個如下所示的彈出窗口:
http://gyazo.com/48a138b2e40fda7e5e72acd1b653a518 在JavaScript中。如何在javascript中編寫彈出窗口

當管理員點擊Delete鏈接時,應該將一個參數傳遞給JavaScript on-click函數。

如何將不同的操作綁定到「確定」和「取消」按鈕? 我的行爲是像下面這樣:

<a href="<c:url value="/Invalidate.do?val=INVALIDATE"/>">Logout</a> 

誰能幫我寫這篇文章的代碼(完整上單擊功能)? 如果您還告訴我如何將此點擊附加到我的鏈接,那將是非常棒的。

在此先感謝

+0

什麼是' 2013-02-19 19:22:33

+0

來自jsp核心庫的jstl標籤。 我需要點擊此鏈接或類似的鏈接上的JavaScript。這只是一個參考 – 2013-02-19 19:28:10

+0

好吧,只是想知道 - 這不是我知道的任何模板語言。但是你的服務器端的東西不應該影響這個問題的答案。 – 2013-02-19 19:29:01

回答

0

你可以使用window.confirm簡單的東西。

它可以工作,如果你不介意你所有的JavaScript阻止和對樣式的控制。

confirmalert內置在所有瀏覽器中,但它們非常有限,通常對於除了一次性之外的任何事情都不是什麼好主意。

對於更多的控制,你將不得不帶來類似jquery ui dialogbootbox from bootstrap這是隻是HTML,因此無限靈活。除非您已經在使用該庫,否則更麻煩的是要設置。而且,所有這些都不會阻止JavaScript的執行,而這又是一種更強大,更好的「實踐」,但對於人們來說更是如此 - 特別是初學者 - 要想得到他們的頭腦。

,所以你可以這樣做(假設jQuery的):

$('button[name=delete]').click(function() { 
    if(window.confirm("You really sure?")) 
    doDelete(); 
}); 

或使用jQuery UI:

$('button[name=delete]').click(function() { 
    $('<div>').text("You really sure?") //Create a simple text element to be dialog'ed 
     .dialog({ 
      buttons: { 
       "Yes": function(){ 
        doDelete() 
        $(this).dialog('close'); 
       } 
       ,"No": function() { $(this).dialog('close'); } 
     }); 
});  

爲完整起見,這裏是去除冗餘代碼的一個圓滑的方式:

$('button[name=delete]').click(function() { 
    $('<div>').text("You really sure?") //Create a simple text element to be dialog'ed 
     .dialog({ 
      buttons: { 
       "Yes": closeAnd(doDelete) 
       ,"No": closeAnd() 
     }); 
    function closeAnd(fn) { //this function is automatically hoisted 
     return function() { //return a handler 
      $(this).dialog('close'); //value of 'this' is determined by who invokes it    
      fn && fn(); //invoke fn if it was passed 
     } 
    } 
});  
+0

感謝您的信息。我還有一些問題: 1)如何將此腳本綁定到我的 html元素? 2)我應該如何導入庫才能使其工作? 我真的不明白你的doDelete()函數。 – 2013-02-19 19:35:31

+0

'doDelete'不存在,因爲我不知道做什麼刪除意味着你。你可能只是在客戶端上做些什麼,或者你可能會做一個ajax請求或多個請求 - 我不知道你的應用程序,我無法知道,所以它只是一個我認爲存在於某個範圍內的函數。 ''不是html元素,它是''元素的屬性。再次指出jQuery--而不是'$('button [name = delete]')'你可以爲你的''元素使用合適的選擇器。您可能想要添加一個類並執行類似'$('a.deleteItem')的操作' – 2013-02-19 19:40:18

+0

至於如何導入一個庫,這遠不止於我可以在評論中簡單地解釋並回到理解JavaScript和HTML的作品。你可以嘗試開始[這裏](http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery)。對於jQuery Ui,你需要一個腳本和css參考 – 2013-02-19 19:42:09