2013-07-12 69 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工作(也许与所有以前的版本)