Как отключить пользовательскую кнопку со слушателем - PullRequest
0 голосов
/ 27 декабря 2011

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

   items: [
       {
        autoEl: {
        tag: 'div'
        },
        cls: 'btn-save uiBtn blue',
        html: '<label><input type="button" value="SAVE"></label>',
        xtype: 'button',
        listeners:{
        'click': {
            element: 'el',
            fn: function(){
            this.submitForm();
            }
        },
        scope:this
        }                   
    },

К сожалению, внутри функции обработчика события щелчка нет. disable(), dom.disabled = 'true' не работает. Как отключить кнопку такого типа?

Ответы [ 2 ]

1 голос
/ 27 декабря 2011

Вы изменили область действия слушателя, поэтому это указывает на что-то еще, кроме кнопки. Вы должны использовать аргумент обработчика:

'click': {
    element: 'el',
    fn: function(e, sender){
        sender.disabled = true;
        this.submitForm();
    }
},
0 голосов
/ 27 декабря 2011

Оказалось, что определение 'this' для функции слушателя - не лучшая идея.Вместо этого я сохранил это как ссылку в локальном свойстве кнопки и оперировал «хитами» как самой кнопкой.

    that: this,
    listeners:{
        'click': function(){
            this.disable();
            this.that.submitForm();
        }
...