2011-12-27 2 views
0

カスタムテンプレートとクリックリスナーでボタンを無効にすることに問題があります。ボタンコードは次のとおりです。リスナーでカスタムボタンを無効にする方法

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'は機能しません。この種のボタンを無効にする方法は?

+0

ボタン(入力タグ)に対してイベントが呼び出され、ラベル(

+0

それはもっと複雑だった:「エル」は全体の形だった。しかし、私はこれを解決することができました。 –

答えて

1

リスナーの範囲が変更されたため、これはボタン以外のものを指しています。

'click': { 
    element: 'el', 
    fn: function(e, sender){ 
     sender.disabled = true; 
     this.submitForm(); 
    } 
}, 
+0

ありがとう。この解決策を覚えています:) –

0

リスナー機能のための 'this'を定義することは最良のアイデアではないことが判明しました。代わりに、私はこれをボタンのローカルプロパティのリファレンスとして保存し、ボタン自体である 'ヒット'で操作しました。

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