我正在尝试将QuickTip添加到表单字段中,但无法找到使代码正常工作的方法。首先,我尝试使用qtip
属性
{
fieldLabel: 'Last Name',
qtip:'This tip is not showing at all',
name: 'last'
}
然后使用Ext.tip.ToolTip
类:
Ext.create('Ext.tip.ToolTip', {
target: 'rating_field',
anchor: 'right',
trackMouse: true,
html: 'This tip is not showing at all'
});
Ext.QuickTips.init();
这是一个包含源代码的jsfiddle:jsfiddle
答案 0 :(得分:21)
是的,使用inputAttrTpl配置和data-qtip属性:
{
fieldLabel: 'Last Name',
inputAttrTpl: " data-qtip='This is my quick tip!' ",
name: 'last'
}
答案 1 :(得分:7)
我在这里找到答案:How should I add a tooltip to an ExtJS Component?
{
fieldLabel: 'Last Name',
qtip: "This is a tip",
name: 'last',
listeners: {
render: function(c) {
Ext.QuickTips.register({
target: c.getEl(),
text: c.qtip
});
}
}
}
答案 2 :(得分:4)
使用vero4ka's answer我编写了一个简单的插件,可以与表单一起使用,以便在子字段上启用快速提示。
Ext.define('Ext.form.QtipPlugin', {
extend: 'Ext.AbstractPlugin',
alias: 'plugin.qtipfields',
init: function (cmp) {
this.setCmp(cmp);
cmp.on('beforerender', function () {
var fields = cmp.query('field[qtip]');
for (var i = 0; i < fields.length; i++) {
fields[i].on('render', this.register, this);
}
}, this);
},
register: function (field) {
var obj = {
target: field.id
};
if (typeof field.qtip === 'string') {
obj.text = field.qtip;
} else if (typeof field.qtip === 'object') {
// Allow qtip configuration objects.
// i.e. qtip: { text: 'hi', ... }
Ext.applyIf(obj, field.qtip);
}
Ext.tip.QuickTipManager.register(obj);
}
});
答案 3 :(得分:3)
对于任何表单字段,您可以使用:
{
xtype: 'textfield', // or anything else
autoEl: {
'data-qtip': 'This tip is not showing at all'
}
}
答案 4 :(得分:0)
您还可以在表单面板上使用内置插件数据提示。 在表单面板中(参见http://docs.sencha.com/extjs/6.5.1/classic/Ext.ux.DataTip.html):
在表单配置中:
plugins = [{ptype : 'datatip'}]
在字段文本配置中:
tooltip : "my tooltip text"
答案 5 :(得分:0)
如果您动态生成工具提示,则可以使用以下代码段:
txtFieldName.el.set({ "data-qtip": Ext.String.htmlDecode("Some Text") });