Как изменить цвет текстового поля с помощью ExtJS? - PullRequest
3 голосов
/ 09 февраля 2012

Я бы хотел изменить цвет текстового поля ExtJS, но у меня ничего не получилось.Ярлык - это компонент, который получает цвет:

var textfield= Ext.create('Ext.form.Text', 
    {
        id: 'textfield',
        name: 'name',
        fieldLabel: 'Name',
        style: 'background-color: #ddd;',
        allowBlank: false,
    });

Ext.create('Ext.form.Panel', {
    title: 'Contact Info',
    width: 300,
    bodyPadding: 10,
    renderTo: Ext.getBody(),
    items: [textfield]
});

Пример: http://jsfiddle.net/3ZZcZ/

Как изменить цвет?

Ответы [ 4 ]

11 голосов
/ 09 февраля 2012

Вам нужно установить fieldStyle вместо style.Вам также необходимо переопределить Ext JS по умолчанию, который устанавливает фоновое изображение на поле.Как это:

fieldStyle: 'background-color: #ddd; background-image: none;'
8 голосов
/ 10 февраля 2012

Лучший способ подойти к этому - установить атрибут fieldCls в класс CSS.

Как это:

Поле Config:

fieldCls: 'required'

CSS:

.required {
    background-image:none;
    background-color:#FFFFCC;
}
1 голос
/ 18 января 2016

Вы можете сделать это разными способами

Опция 1 (глобальная): изменить значение переменной SASS на «Ext.form.field.Text»

eg: $form-text-field-color: #003168 !default;

Вариант 2: создать миксин

eg:

file -> sass/src/form/field/Text.scss

@include extjs-text-field-ui(
    $ui: 'customName',
    $ui-color: #003168
);

js: 
    {
        xtype: 'textfield',
        ui: 'customName'
    }

Вариант 3: использовать конфигурацию поля fieldStyle

eg:
{
    xtype: 'textfield',
    fieldLabel: 'Test Label',
    fieldStyle: 'font-weight: bold; color: #003168;',
    labelWidth: 170
}

Вариант 4: добавьте "cls" в поле формы и добавьте свой стиль в свой CSS-файл

eg: 
js:
{
    xtype: 'form',
    defaults: {
        cls: 'test-class'
    }
}

CSS:
.test-class .x-form-text {
    color: #003168;
}
0 голосов
/ 09 октября 2016

Расширяя ответ Василия. Стиль может быть установлен динамически следующим образом:

Ext.get('textfield').setStyle('background-color','#ddd');
Ext.get('textfield').setStyle('background-image','none');
...