テキストフィールド、コンボ、ラジオが1つあります。1つのボタンをクリックして、これら3つのフィールドの値を取得したいと思います。使用せずに上記の3の値を取得するにはどうすればよいですかExt.getCmp('id').getValue();
値を取得する方法は他にあります
か?教えてください。
テキストフィールド、コンボ、ラジオが1つあります。1つのボタンをクリックして、これら3つのフィールドの値を取得したいと思います。使用せずに上記の3の値を取得するにはどうすればよいですかExt.getCmp('id').getValue();
値を取得する方法は他にあります
か?教えてください。
これがまだ関連しているかどうかはわかりませんが、ここに行きます。
まず、Extjs4 以降では、Ext.ComponentQuery.query()
代わりにを使用しますExt.getCmp()
。これにより、他の回答で言及されている、 およびメソッドと
同様に、持っている xtype に直接アクセスできますが、このメソッドはコンポーネント階層全体を検索するため、アンカーは必要ありません。ページには各要素が 1 つしかないため、ID を使用しなくても非常に簡単に実現できます。フィールドを含むメイン パネルに名前を付けますが、これは便宜上のものです。
このフィドルを見てくださいup
down
コードは非常に単純です。
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
。そのためのフォームは必要ありませんが、その方がより論理的です。
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()
-少なくともそれが私にとってはうまくいきます。