首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery对话框-不使用键设置按钮文本

JQuery对话框-不使用键设置按钮文本
EN

Stack Overflow用户
提问于 2011-03-11 03:20:28
回答 3查看 2.5K关注 0票数 4

我需要为JQuery对话框的按钮文本提供本地化,但是JQuery对话框通常使用按钮文本的键:

代码语言:javascript
复制
$(DialogDiv).dialog({
    bgiframe: true,
    resizable: false,
    buttons: { Save : saveCallback, Cancel : cancelCallback}
});

有没有一种方法可以单独指定文本而不使用键作为文本值?目前我正在使用这个,但是我不喜欢使用本地化的值作为键:

代码语言:javascript
复制
var buttonCallbacks = {};       
buttonCallbacks[com.i18n.getText("Save")] = function() {};
buttonCallbacks[com.i18n.getText("Cancel")] = function() {};

$(DialogDiv).dialog({
    bgiframe: true,
    resizable: false,
    buttons: buttonCallbacks 
});

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-11 04:56:49

如果您查看对话框的button options,您会注意到列出的第二种格式接受一个对象数组:

代码语言:javascript
复制
$(DialogDiv).dialog({
    bgiframe: true,
    resizable: false,
    buttons: [ { 
        text: com.i18n.getText("Save"),
        click: saveCallback
      }, {
        text: com.i18n.getText("Cancel"),
        click: cancelCallback
      }
    ]
});
票数 6
EN

Stack Overflow用户

发布于 2011-03-11 03:29:50

在源代码(1.8)上刚刚达到顶峰:

代码语言:javascript
复制
var button = $('<button type="button"></button>')
    .text(name) // name is object key from each
    .click(function() { fn.apply(self.element[0], arguments); })
    .appendTo(uiDialogButtonPane);

所以看起来不像。

现在你可以添加一个在show之后修改按钮的回调函数。这看起来很不靠谱--我建议你现在这样做。

票数 1
EN

Stack Overflow用户

发布于 2011-03-11 04:41:51

初始化完成后,我可以告诉您如何事后进行更改,但是在构造函数中进行更改将需要对jQuery UI库进行根本更改,当然,这是完全可行的,因为它是开放源代码的。目前未向您提供该功能。

相反,我建议在对话框初始化后执行您想要的更改:

代码语言:javascript
复制
$('.myDialogSelector').parent()
    .find('span.ui-button-text:contains("OriginalNameFromKey")')
    .html("New Button Text");

请参阅正常工作的fiddle here

我可以问一下为什么构造器的格式对你很重要吗?我很难想象这个用例的细节。构建buttons映射的方式似乎很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5264699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档