2013-07-12 221 views
0

有人可以幫我隱藏/禁用jQuery對話框上的按鈕嗎?如何隱藏對話框加載的jQuery對話框按鈕?

場景:在按鈕單擊時,我打開一個對話框,其中包含「添加」和「更新」按鈕。 在對話框中我有2個包含日期和消息的文本框。如果數據已經存在於數據庫中,它們將填充數據,否則它們將是空白的,允許用戶添加數據。

現在,如果文本框中有預填充數據(消息存在數據庫)我必須隱藏添加按鈕,因爲用戶只能更新消息。我嘗試了幾個技巧,我從stackoverflow中獲得,但沒有一個是作爲我打開按鈕單擊對話框,所以我想我正在動態創建按鈕,我不能在飛行中隱藏它們。

我也嘗試給一個id對話框按鈕,並使用下面的代碼隱藏/禁用它: $('#id')。hide(); $('#id')。attr('disabled','disabled');

我看着下面的小提琴,這正是我想要的,但如果我採用這個,那麼我必須進行大量的代碼更改。所以,想知道是否有人能爲我提供一個簡單的解決方案。

[http://jsfiddle.net/kkh2a/1/]

預先感謝。

$('#dialog-form').dialog({width:350,height:300, 
    resizable:false, 
    modal:true, 
    closeOnEscape: true, 
    draggable:false, 
    show:{effect:"fade"}, 
    buttons:{ 
     Add:{ 
      text:'Add', 
      id:'AddMsg', 
      click:function(){ 

     }}, 
     Update:function(){ 
      }, 
     Cancel:function(){ 
      $(this).dialog("close"); 
     } 
    }}); 
+2

「我看着下面搗鼓這正是我想要的,但如果我採取這種話,我必須做出大量的代碼變化「。 ...如果你向我們展示代碼,我們可能會提供幫助。 – RobH

+0

Robh,我添加了代碼。我從函數內部調用這個對話框。 – PanwarS87

回答

0

試試這個:

$('#dialog-form').dialog({ 
    ... 
    buttons : {...}, 
    open : function() { 
     $('#dialog-form') 
      .dialog('widget') 
      .find('div.ui-dialog-buttonpane div.ui-dialog-buttonset button') 
       .eq(0) 
       .button('disable'); 
    } 
}); 
+0

謝謝德里克,我修改了一下,它工作。我沒有意識到對話中的開放。 – PanwarS87

+0

打開裏面我只是隱藏按鈕,如果文本出現在消息文本框中.... – PanwarS87

+0

沒有問題。您可以爲對話框定義打開和關閉功能。查看api.jqueryui.com/dialog瞭解更多詳情 – Derek

0

海蘭所有, 我用這樣的方式:

$("#myDivForLoadingDialog").dialog({ 
    modal: true, 
    resizable: false, 
    height: "auto", 
    draggable: false, 
    closeOnEscape: false, 
    open: function (event, ui) { 
     $("#myDivForLoadingDialog").prev().hide(); 
    } 
}) 

沒有在選項設置按鈕,它不顯示內部

任何按鈕設置closeOnEscape:false以避免您的加載消息被「esc」按鈕關閉

在opencallback中隱藏了標題框(以及它內部的關閉按鈕)。

我更喜歡避免拖放,調整大小和加載消息不需要的所有功能。

它使用jQuery 1.11.1工作(也許與所有以前的版本)