在ext js中,当我有一个组合时,有显示值和值(发送到服务器)。我不需要displayValue发送到服务器,但我需要在页面上捕获它并显示警报。
这样做的eextjs方法是什么?
combo.getValue()
将返回基础值...我看不到任何combo.getDisplay()
编辑:为了澄清,我希望获得用户选择的项目的显示值。我希望在onselect或changeevent上显示警告。
答案 0 :(得分: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.
}
答案 1 :(得分:1)
combo.getStore().getById(combo.getValue()).raw.displayAttribute //Ext 4.x,
//displayAttribute: displayField or displayed attrib in store data for the combo
答案 2 :(得分:0)
我们可以检索底层商店,然后使用您的值作为键来获取显示值。
这样的东西(我还没有测试过):
var displayValue = combo.getStore()[combo.getValue()]
答案 3 :(得分:0)
我们可以得到这样的组合框显示值......
getRawValue():String 返回组合的原始String值,而不执行任何规范化,转换或验证。如果已渲染字段,则获取input元素的当前值,如果为emptyText,则忽略该值。
combo.getRawValue();
答案 4 :(得分: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');
}