Button 突出显示ExtJS(3.x)MessageBox中的默认按钮

Button 突出显示ExtJS(3.x)MessageBox中的默认按钮,button,extjs,messagebox,Button,Extjs,Messagebox,是否有Ext认可的方式突出显示Ext.MessageBox中的默认按钮(按Enter键触发的按钮) 请注意,我不想在显示MessageBox时聚焦按钮(在出现“提示”对话框的情况下,我希望输入元素具有焦点) 我知道我可以通过向button元素添加自定义类来实现这一点,但是。。。也许有一种更好、更像Ext的方法可以做到这一点 谢谢。简而言之。。。否。Ext目前没有提供突出显示任何Ext.MessageBox组件中按钮的方法,也没有通过配置选项 但是,根据场景的不同,也有不同的方法。例如,如果您正在

是否有Ext认可的方式突出显示Ext.MessageBox中的默认按钮(按Enter键触发的按钮)

请注意,我不想在显示MessageBox时聚焦按钮(在出现“提示”对话框的情况下,我希望输入元素具有焦点)

我知道我可以通过向button元素添加自定义类来实现这一点,但是。。。也许有一种更好、更像Ext的方法可以做到这一点


谢谢。

简而言之。。。否。Ext目前没有提供突出显示任何
Ext.MessageBox
组件中按钮的方法,也没有通过配置选项

但是,根据场景的不同,也有不同的方法。例如,如果您正在使用
Ext.MessageBox.show()
(实际上可以用于所有消息框),则可以执行以下操作

new Ext.Msg.show({
   title: 'Test',
   msg: 'A sample message box with a button marked as default',
   buttons: { ok: '<b>Submit</b>', cancel: 'Cancel' },
   fn: function(btn) {
       if(btn == 'ok') {
          //do something
       }
   },
   icon: Ext.Msg.WARNING
} 
new Ext.Msg.show({
标题:"测试",,
msg:'带有标记为默认按钮的示例消息框',
按钮:{确定:“提交”,取消:“取消”},
fn:功能(btn){
如果(btn=='ok'){
//做点什么
}
},
图标:Ext.Msg.WARNING
} 
我们所做的就是在配置中的一个按钮上添加
标记,这将明显以粗体显示

您提到的另一种方法是添加自定义类并用文本颜色标记按钮,您甚至可以像上面的
标记那样添加类,以使其更简单

按钮:{确定:“提交”,取消:“取消”},


除了这种风格的方法,或者不扩展
Ext.MessageBox
类,没有其他方法可以实现这一点。

Jaitsu有最好的答案,但如果这对其他人可能有用的话……这里有一种使用风格的方法。 同样的技巧也可以应用于任何其他按钮(如:窗口按钮)

将此添加到css中:

.x-btn-default td.x-btn-mc {
  outline: 1px dotted black;
}
然后定义如下按钮:

  ...
  ,buttons: [
    {
      text: 'Ok',
      ,handler: handleFn
      ,cls: 'x-btn-default'
    },{
      text: 'Cancel',
      ,handler: handleFn
    }
  ]
  ,...

在ExtJs 4中,可以按如下方式设置默认按钮:

Ext.MessageBox.defaultButton = buttonIndex;

其中“buttonIndex”是对话框中按钮的索引。在调用Ext.MessageBox.Show之前,需要执行此操作。

我无法立即记住按钮是从基本索引0还是1开始的,但它只是基于页脚栏中按钮的数量(从左开始计数)。例如(假设索引为零),如果页脚栏中有“是”、“否”按钮,“是”将是第一个按钮(索引0),而“否”将是第二个按钮(索引1)。希望这对您有所帮助。