extjs form markInvalid - PullRequest
       3

extjs form markInvalid

0 голосов
/ 03 марта 2011

Я хочу использовать this.form.markInvalid прямо из формы.

у меня есть 2 пункта в моей форме:

код:

  items: [
            { 
            fieldLabel: 'Name',
            name: 'name'
            }
            ,{
            id: 'e' ,
            fieldLabel: 'Email',
            name: 'email'
        }]

когда пользователь нажимает на кнопку, которую я звоню this.form.markInvalid({'e':'email is invalid'});

Я хочу пометить элемент электронной почты как недействительный сообщением об ошибке: «адрес электронной почты недействителен».

Но я получаю сообщение об ошибке, когда нажимаю кнопку:

this.form is undefined
 this.form.markInvalid({'e':'email is invalid'}); 

Thx

1 Ответ

1 голос
/ 03 марта 2011

В обработчике кнопок / прослушивателе вы определили правильную область действия?

Функция, которая зарегистрирована для события click, должна иметь доступ к свойству this.form. this в вашем случае, вероятно, указывает на саму кнопку вместо formPanel.

Вы можете легко изменить область действия слушателя, используя createDelegate () или добавив дополнительный аргумент при регистрации слушателя, например:

myButton.on('click', function(){
    console.log(this, this.id);
}, this); // <= notice the "this" argument here!

НО! Почему вы проверяете свою электронную почту, как это? Вы также можете легко добавить vtype к вашей конфигурации поля и позволить ExtJS сделать все это за вас.

items: [{ 
    fieldLabel: 'Name',
    name: 'name'
},{
    id: 'e' ,
    fieldLabel: 'Email',
    name: 'email',
    vtype: 'email'
}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...