如何在对话框加载时隐藏jquery对话框按钮?

时间:2013-07-12 15:13:43

标签: javascript jquery jquery-dialog

有人可以帮我隐藏/禁用jQuery对话框上的按钮吗?

场景:点击按钮我打开一个带有“添加”和“更新”按钮的对话框。 在对话框中我有2个包含日期和消息的文本框。如果数据已存在于数据库中,它们将填充数据,否则它们将为空白,允许用户添加数据。

现在,如果文本框中有预先填充的数据(db中存在消息),我必须隐藏“添加”按钮,因为用户只能更新消息。我尝试了一些技巧,我从stackoverflow中获取但是没有一个工作,因为我点击按钮打开对话框,我想我正在动态创建按钮,我无法在飞行中隐藏它们。

我还尝试给对话框按钮添加ID并使用以下代码隐藏/禁用它: $( '#ID')隐藏()。 $( '#标识')ATTR( '禁用', '禁用');

我查看下面的小提琴,这正是我想要的但是如果我采用这个,那么我必须做很多代码更改。所以,想知道是否有人能为我提供一个简单的解决方案。

[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 个答案:

答案 0 :(得分: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');
    }
});

答案 1 :(得分:0)

Hy all, 我用这种方式:

$("#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(可能与以前的所有版本一起使用)