2011-02-02 23 views
2

コンボがある場合、表示値と値(サーバーに送信されます)があります。私はdisplayValueをサーバーに送る必要はありませんが、私はページにそれをキャプチャし、警告を表示する必要があります。 これを行うeextjsメソッドとは何ですか? combo.getValue()は、基礎となる値を返します...と私はどのcombo.getDisplay()extjsコンボ表示値

EDITが表示されていない。ただ、私は、ユーザーによって選択された項目の表示値を取得するために探しています、明確にします。私はonselectまたはchangeeventに警告を表示したいと思います。

答えて

5

をあなたが正常に動作します警告に表示したい値に、コンボボックスのvalueFieldプロパティを設定した場合。この値は、サーバーに送信する値とは異なるようにしたい場合は

alert(combo.getValue()); 

あなたはコンボボックスからストアを取得し、該当するレコードを見つける必要があります。

var store = combo.getStore(); 
var index = store.find('*YourFieldName*', combo.getValue()); 
if(index != -1)//the record has been found 
    { 
     var record = store.getAt(index); 
     //you can then do what you like with the record. 
    } 
+0

+1が、あなたは本当に "場合" を必要としません調子。 (あなたがそれを必要とするケースを考えることができるなら、私は知りたい!) –

+0

あなたがcombo.getValue()メソッドから戻った値がストアにない場合。ユーザーがコンボボックスに値を入力した、または他の場所から値が設定されていると、その値がストアにない可能性があり、インデックスが-1になり、コードにエラーが発生します。 – shane87

+0

あなたは正しいですが...しかし、彼は異なる値と表示フィールドを持っているので、ユーザーが店舗にない任意の値を入力できるようにすることが最も理にかなっていませんが、技術的には正しいです。 –

0

私たちは基礎となる店舗を探して、私たちの値をキーとして表示価値を得ることができます。

このような何か(私はそれをテストしていません):

var displayValue = combo.getStore()[combo.getValue()] 
0

我々はこのようなコンボボックスの表示値の何かを得ることができます...

getRawValueは():文字列 任意の正規化、変換、または検証を行わずに、コンボの生の文字列値を返します。フィールドがレンダリングされている場合はinput要素の現在の値を取得し、emptyTextの場合は値を無視します。

combo.getRawValue();

1
combo.getStore().getById(combo.getValue()).raw.displayAttribute //Ext 4.x, 
//displayAttribute: displayField or displayed attrib in store data for the combo 
0

のは、あなたのコンボボックスで、次のしていると仮定しましょう:

 
id: 'COMBOBOX_ID', 
displayField: 'COMBOBOX_DIS_FIELD_NAME', 
valueField: 'COMBOBOX_VAL_FIELD_NAME' 

その後、次のことが可能です。

var combo = Ext.getCmp('COMBOBOX_ID'); 
var comboStore = combo.getStore(); 
var index = comboStore.find('COMBOBOX_VAL_FIELD_NAME', combo.getValue()); 
if(index != -1) 
{ 
    var selectedItemDisplayValue = combo.getStore().getAt(index).get('COMBOBOX_DIS_FIELD_NAME'); 
} 
関連する問題