当字段聚焦时,我想用自定义css类标记每个字段 Package 容器,当字段模糊时,我想删除那个类。所以我想将focus/blur事件方法附加到我添加到任何表单的每个表单字段组件。
在Ext 4中,我是这样做:
Ext.ComponentManager.all.on('add', function(map, key, item) {
// Check if item is a Window and do whatever
if (item instanceof Ext.form.field.Base) {
item.on('focus', function(theField) {
var parentDom = null; //theField.bodyEl.findParent('.x-form-fieldcontainer');
if (!parentDom) {
parentDom = theField.bodyEl.findParent('.x-field');
}
if (parentDom) {
var parentEl = Ext.get(parentDom);
parentEl.addCls('focused-field');
}
}, item);
item.on('blur', function(theField) {
var parentDom = null; //theField.bodyEl.findParent('.x-form-fieldcontainer');
if (!parentDom) {
parentDom = theField.bodyEl.findParent('.x-field');
}
if (parentDom) {
var parentEl = Ext.get(parentDom);
parentEl.removeCls('focused-field');
}
}, item);
}
});
我不知道如何在ExtJS 6中执行此操作
任何帮助都很感激
此致
阿曼多
1条答案
按热度按时间ej83mcc01#
你不需要它,ExtJs已经有了'.x-field-focus' css类,它被添加到焦点上的 Package 元素中,所以你可以尝试将你的样式添加到现有的类中。你也可以查看$form-field-focus-* 主题变量。
无论如何,如果您想添加此功能,您可以覆盖'Ext.form.field.Base'类,它是所有表单字段的父类。类似于: