1

次のアイテムを含むパネルがあります。

{
    xtype: 'numberfield',
    id: 'articleFastSearch',
    listeners: {
        scope: this,
        specialkey: function(field, e) {                            
            if (e.getKey() == Ext.EventObject.ENTER) {
                var val = this.rawValue;
                // Do stuff with val
            }
        }
    }
},
{
    id: 'articleFastSearchBtn',
    text: 'Open article',
    scope: this,
    handler: function(btn) {
        console.log(Ext.get("articleFastSearch"));
        var val = Ext.get("articleFastSearch").getValue();
        console.log(val);
        // Do stuff with val
    }
}

数値フィールドのリスナーは完全に機能しますが、ボタン ハンドラーから数値フィールドの値にアクセスするのに問題があります。数値フィールドに名前を付けて使用しようとしましthis.articleFastSearch.getValue()たが、うまくいきませんでした。範囲が間違っていたのではないでしょうか?

次に、数値フィールドに id を与え、上記のように dom を介してアクセスしようとしました。HTMLTableElementこれは、返されたコンストラクターが実際には数値フィールドではなく を含むという奇妙な結果をもたらします。プロパティの値が見つからないので、非常に混乱しています... ページに同じ ID を持つ他の要素はありません。何か案は?

理想的には、this可能であれば変数を介して値にアクセスしたいのですが、うまくいく解決策で解決します!

4

1 に答える 1

1

Ext.get()Ext.Elementを返します。あなたが探しているのはExt.getCmp()ですExt.container.AbstractContainerから継承するすべてのクラス内でショートカットアップ/ダウンとしても利用できる新しいExt.ComponentQueryの使用も検討する必要があります。

于 2012-09-05T08:37:53.953 に答える