Ext JS - Могу ли я "цепочкой" методы на поле? - PullRequest
2 голосов
/ 15 марта 2010

HI, Я просто пытаюсь установить значение поля и отключить его одновременно. Можно ли это сделать в ext js? Документы очень слабы по этому вопросу.

что-то вроде этого генерирует ошибки:

myForm.getForm().findField('start_date').setValue('').setDisabled(true);

Я привык к JQuery, который прекрасно справляется с подобными задачами, но с Ext.

Спасибо за любую помощь.

Ответы [ 3 ]

2 голосов
/ 15 марта 2010

На самом деле, Field.setValue на самом деле возвращает ссылку на поле ( документы ), поэтому вы должны иметь возможность вызывать setDisabled (унаследовано от Компонента), как оно есть. У тебя должна быть какая-то другая проблема. Возможно findField('start_date') возвращает ноль. Вы должны убедиться, что все возвращаемые значения соответствуют вашим ожиданиям. Используйте Firebug, чтобы выяснить ошибку, или разбейте свое утверждение и посмотрите, какой вызов на самом деле терпит неудачу.

Что-либо является «цепным», если возвращаемое значение является самим объектом (обычно обозначается как this в документации). В jQuery все работает с элементами DOM, поэтому оно согласованно. В Ext у вас есть много компонентов с различным поведением. Иногда цепочка имеет смысл, иногда нет - просто убедитесь, что вы проверяете документы, когда не уверены.

0 голосов
/ 19 марта 2010

Я согласен с bmoeskau, это должно работать, если поле есть и найдено по форме Я бы посоветовал вам что-то подобное, чтобы избежать ошибок:

var field = myForm.getForm().findField('xyz');
if(field !== undefined)
{
    field.setValue('');
    field.setDisabled(true);
}
else
{
    // Error Handling
}
0 голосов
/ 15 марта 2010

Это потому, что метод setValue () не возвращает объект поля. Вы не можете использовать setDisabled () таким образом.

РЕДАКТИРОВАТЬ: (Для тех дебилов с понижением голосов)

Из документации ExtJS:

method: setValue(value)

Parameters:
value : Mixed
The value to set

Returns:
void
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...