jQuery UI对话框按钮文本作为变量

60 variables jquery jquery-ui jquery-ui-dialog

任何人都可以告诉我如何在jQuery UI对话框中使用按钮文本的变量?我想创建一个动态按钮名称.

W. *_*ers 95

这不起作用,因为jQuery处理按钮名称的方式(可以带或不带引号)

这将有效:

var button_name = 'Test';
var dialog_buttons = {}; 
dialog_buttons[button_name] = function(){ closeInstanceForm(Function); }
dialog_buttons['Cancel'] = function(){ $(this).dialog('close'); }   
$('#instanceDialog').dialog({ buttons: dialog_buttons });
Run Code Online (Sandbox Code Playgroud)

  • 到目前为止最好的解决 (2认同)

cra*_*TOR 60

你可以做的是在对话框中分配一个ID,然后使用标准的jQuery操作它.

$("#dialog_box").dialog({
    autoOpen: false,
    modal: true,
    resizable: false,
    buttons: [{
        text: "Ok",
        "id": "btnOk",
        click: function () {
            //okCallback();
        },

    }, {
        text: "Cancel",
        click: function () {
            //cancelCallback();
        },
    }],
    close: function () {
        //do something
    }
});
Run Code Online (Sandbox Code Playgroud)

设置按钮文字:

 var newLabel = "Updated Label";
 $("#btnOk").html('<span class="ui-button-text">'+ newLabel +'</span>')
Run Code Online (Sandbox Code Playgroud)

  • 我更喜欢这样做而不是像W. van Kuipers所建议的那样有一个单独的功能. (3认同)

Dav*_*Toy 7

这里的问题是对话框插件没有为其按钮分配id,因此很难直接修改它们.

而是,正常初始化对话框,按其包含的文本找到按钮并添加ID.然后可以直接访问该按钮以更改文本,格式化,启用/禁用它等.

$("#dialog_box").dialog({
buttons: {
    'ButtonA': function() {
        //... configure the button's function
    }
});
$('.ui-dialog-buttonpane button:contains(ButtonA)').attr("id","dialog_box_send-button");            
$('#dialog_box_send-button').html('Send')       
Run Code Online (Sandbox Code Playgroud)


Jef*_*ber 0

var buttonName = "something";
$('#button-id').attr('value', buttonName);
Run Code Online (Sandbox Code Playgroud)