0

テキストフィールド、コンボ、ラジオが1つあります。1つのボタンをクリックして、これら3つのフィールドの値を取得したいと思います。使用せずに上記の3の値を取得するにはどうすればよいですかExt.getCmp('id').getValue();

値を取得する方法は他にあります
か?教えてください。

4

3 に答える 3

0

これがまだ関連しているかどうかはわかりませんが、ここに行きます。
まず、Extjs4 以降では、Ext.ComponentQuery.query()代わりにを使用しますExt.getCmp()。これにより、他の回答で言及されている、 およびメソッドと
同様に、持っている xtype に直接アクセスできますが、このメソッドはコンポーネント階層全体を検索するため、アンカーは必要ありません。ページには各要素が 1 つしかないため、ID を使用しなくても非常に簡単に実現できます。フィールドを含むメイン パネルに名前を付けますが、これは便宜上のものです。 このフィドルを見てくださいupdown

コードは非常に単純です。

var panel = Ext.create('Ext.panel.Panel', {
    renderTo: Ext.getBody(),
    name: 'myForm',
    title: 'Sample Test',
    layout: 'anchor',
    height: 200,
    items: [{
        xtype:'textfield',
        fieldLabel: 'text',
        value: 'Oh yeah!'
    }]    
});

var myVal = Ext.ComponentQuery.query('panel[name=myForm] textfield')[0];
alert (myVal.getValue());

radioフィールドとフィールドでも同じことができますcombo。そのためのフォームは必要ありませんが、その方がより論理的です。

于 2012-09-22T19:40:15.833 に答える
0

ExtJS 4.1 では、前の例に近いが正しくないことがわかりました。

var TheComponent = this.up('form').down('#MyTextField')

フォーム オブジェクトには "down" メソッドはありません (明らかに、フォーム フィールドは down メソッドのナビゲーション ロジックに含まれていません)。

フォーム内の編集フィールドに最初のフォーカスを設定するために私が働いたのは次のとおりです。

var theForm = this.down('form').getForm();
var theField = theForm.findField('idEditVolname');
theField.focus();

getForm()埋め込みフォームオブジェクトを取得するために使用し、その後に特定のフィールドを見つけるために使用する必要がありますfindField()-少なくともそれが私にとってはうまくいきます。

于 2012-08-25T16:16:23.127 に答える