打开jQuery ui对话框时如何隐藏对话框按钮

打开jQuery ui对话框时如何隐藏对话框按钮,jquery,jquery-ui,jquery-ui-dialog,Jquery,Jquery Ui,Jquery Ui Dialog,打开jQuery UI对话框时,如何隐藏按钮?例如,隐藏保存按钮 //javascript $document.readyfunction{ $“打开”。单击函数{ $dialog.dialogopen; }; $dialog.dialog{ 自动打开:错误, 身高:400, 宽度:350, 莫代尔:是的, 开放:功能{ var dialog=$this; console.log'dialog',dialog; 变量按钮=dialog.dialogoption,按钮; 控制台。日志“按钮”,按钮

打开jQuery UI对话框时,如何隐藏按钮?例如,隐藏保存按钮

//javascript $document.readyfunction{ $“打开”。单击函数{ $dialog.dialogopen; }; $dialog.dialog{ 自动打开:错误, 身高:400, 宽度:350, 莫代尔:是的, 开放:功能{ var dialog=$this; console.log'dialog',dialog; 变量按钮=dialog.dialogoption,按钮; 控制台。日志“按钮”,按钮; //这样改名字。。。 按钮[0]。文本='Save2'; 按钮[1]。文本='Cancel2'; dialog.dialogoption,按钮,按钮; //如何隐藏按钮,即隐藏保存按钮? }, 按钮:[{ 文本:“保存”, 单击:函数{ 警报“保存”; $this.dialogclose; } }, { 文本:“取消”, 单击:函数{ $this.dialogclose; } }] }; };
我只是给按钮添加了一个id,并更新了click函数来隐藏它

$(document).ready(function () {

    $('#open').click(function () {
        $("#dialog").dialog("open");
        $("#save").hide();
    });

    $("#dialog").dialog({
        autoOpen: false,
        height: 400,
        width: 350,
        modal: true,
        open: function () {
            var dialog = $(this);
            console.log('dialog', dialog);
            var buttons = dialog.dialog("option", "buttons");
            console.log('buttons', buttons);
            //Change names this way...
            buttons[0].text = 'Save2';
            buttons[1].text = 'Cancel2';
            dialog.dialog("option", "buttons", buttons)
            //How do I hide a button (i.e. hide Save button)?
        },
        buttons: [{
            text: 'SAVE',
            id: "save",
            click: function () {
                alert('save');
                $(this).dialog("close");
            }
        }, {
            text: 'CANCEL',            
            click: function () {
                $(this).dialog("close");
            }
        }]
    });

});

我只是给按钮添加了一个id,并更新了click函数来隐藏它

$(document).ready(function () {

    $('#open').click(function () {
        $("#dialog").dialog("open");
        $("#save").hide();
    });

    $("#dialog").dialog({
        autoOpen: false,
        height: 400,
        width: 350,
        modal: true,
        open: function () {
            var dialog = $(this);
            console.log('dialog', dialog);
            var buttons = dialog.dialog("option", "buttons");
            console.log('buttons', buttons);
            //Change names this way...
            buttons[0].text = 'Save2';
            buttons[1].text = 'Cancel2';
            dialog.dialog("option", "buttons", buttons)
            //How do I hide a button (i.e. hide Save button)?
        },
        buttons: [{
            text: 'SAVE',
            id: "save",
            click: function () {
                alert('save');
                $(this).dialog("close");
            }
        }, {
            text: 'CANCEL',            
            click: function () {
                $(this).dialog("close");
            }
        }]
    });

});

最简单的*方法是获取当前对话框的元素,并找到其中的按钮:

open: function () {
    var $widget = $(this).dialog("widget");
    $widget.find(".ui-dialog-buttonpane button:first").hide();
}

比查找页面上的所有按钮元素并猜测其中一个更容易。

最简单的*方法是抓住当前对话框的元素并单击。查找其中的按钮:

open: function () {
    var $widget = $(this).dialog("widget");
    $widget.find(".ui-dialog-buttonpane button:first").hide();
}

比在页面上查找所有按钮元素并猜测哪个是哪个更容易。

谢谢jroot,但出于维护目的,我想将其隐藏在对话框脚本中。另外,我不想向按钮添加ID。感谢jroot,但出于维护目的,我想将其隐藏在对话框脚本中。而且,我不想在按钮上添加ID。啊,我明白了。非常感谢。奇怪的是,为什么不能操纵button对象这样做呢?buttons对象并没有引用对话框中的HTML按钮。它指的是用于生成或重新生成按钮的选项。明白了!再次感谢您,您是否也可以像我那样使用小部件更改名称?您可以,但我不确定。如果您直接更改按钮的文本,实际上是其中跨距的文本,$.dialog.dialogoption,按钮[0]。文本将包含一个现在不同步的值。啊,我明白了。非常感谢。奇怪的是,为什么不能操纵button对象这样做呢?buttons对象并没有引用对话框中的HTML按钮。它指的是用于生成或重新生成按钮的选项。明白了!再次感谢您,您是否也可以像我那样使用小部件更改名称?您可以,但我不确定。如果直接更改按钮的文本,实际上是更改按钮内跨距的文本,$.dialog.dialogoption,按钮[0]。文本将包含一个现在不同步的值。