2011-02-02 81 views
2

在ext js中,当我有一个组合时,显示值和值(它被发送到服务器)。我不需要displayValue发送到服务器,但我需要在页面上捕获它并显示警报。 这样做的eextjs方法是什么? combo.getValue()将返回潜在价值......我没有看到任何combo.getDisplay()extjs组合显示值

编辑:只是为了澄清,我希望得到一个由用户选择的项目的显示值。我希望在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但你并不真正需要的 “如果”条件。 (如果你能想到一个你需要的情况,我想知道!) – 2011-02-02 17:42:27

0

我们可以检索底层商店,然后使用我们的值作为键来获得显示值。

像这样的东西(我没有测试过):

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

我们可以得到组合框显示值这样的事情...

getRawValue():字符串 返回组合的原始字符串值,而没有进行任何正常化,转换或验证。获取输入元素的当前值,如果该字段已被渲染,则忽略该值(如果它是空文本)。

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'); 
}