Ext中的Combobox怎么取值

qianqian51267 2009-03-24 04:23:30
现在我只能取到text,区不到他的value(不提交到服务器,只是在前台取值)


var combo = new Ext.form.ComboBox({
width:127,
height:50,
renderTo:'div_com',
mode:'remote',
triggerAction:'all',
id:'filiale',
name:'filiale',
value:'请选择..',
allowBlank: false,
handleHeight:5,
listWidth :150,
maxHeight:100,
readOnly:true,
valueFiled:'fid',
displayField:'title',
store:new Ext.data.JsonStore({
url: '../../MyPages/Colligate/UploadFiliale.aspx?id='+encodeURI(v),
root: 'data',
fields: ['title','fid']
}),
listeners:{
'select':function(arg){
var d = arg.value;
alert(Ext.get("filiale").dom.value);
alert(Ext.getCmp("filiale").getValue());
}
}
});

...全文
10809 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjw0093 2012-05-25
  • 打赏
  • 举报
回复
额,combo.getValue() 可以直接获得valueField 的值 正解啊
「已注销」 2010-07-24
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 hexin46373 的回复:]
同问阿..




Java code

fieldLabel : "新职位",
xtype : 'combo',
store : new Ext.data.JsonStore({
fields : ['name……
[/Quote]


解决了 加一个
hiddenName: 'relation.ndepartId',
就解决了!
原来是这样!
「已注销」 2010-07-24
  • 打赏
  • 举报
回复
同问阿..




fieldLabel : "新职位",
xtype : 'combo',
store : new Ext.data.JsonStore({
fields : ['name', 'value'],
data : [{
name : '请选择..',
value : '-1'
}, {
name : '校长',
value : '0'
}, {
name : '经理',
value : '1'
}, {
name : '主任',
value : '2'
}, {
name : '专员',
value : '3'
}]
}),
mode : 'local',
value : -1,
triggerAction : 'all',
forceSelection : true,
editable : false,
displayField : 'name',
valueField : 'value',
width : 222,
border : true,
name : "relation.npId"



我用的Struts 传过去的relation.npId取得始终是'name' 而不是我要的'value'
linzhou119 2010-06-12
  • 打赏
  • 举报
回复
ding
lxh1962 2010-04-30
  • 打赏
  • 举报
回复
需要回复才能看的贴子一定有价值吧
xiejin8877 2010-04-28
  • 打赏
  • 举报
回复
明白了,是要设一个隐藏域,而不是把取出来的valueField隐藏起来,多谢!!
a7089638 2010-04-23
  • 打赏
  • 举报
回复
asDasdasd
luy08781 2010-02-02
  • 打赏
  • 举报
回复
extjs的API文档中,关于Class Ext.form.ComboBox说明的开头部分有下面一段话:

A ComboBox works in a similar manner to a traditional HTML <select> field. The difference is that to submit the valueField, you must specify a hiddenName to create a hidden input field to hold the value of the valueField. The displayField is shown in the text field which is named according to the name.

如果看懂这段儿,你就会明白:要提交valueField的值,必须显式配置一个hiddenName,用于保存选中项目的valueField值,否则得话,将会提交name域,其值为displayField的值。

下面是一段我写的一个例子:

var tableTypeObj = new Ext.form.ComboBox(
{
id: "tableType",
fieldLabel: UI.LABELS.tableType,
name: 'typeDesc',//用于保存选中项目的displayField
hiddenName:'typeValue',//用于保存选中项目的valueField
typeAhead: true,
triggerAction: 'all',
lazyRender: false,
mode: 'remote',
allowBlank: false,
readOnly: true,
isFormField: true,
blankText: UI.MESSAGES.fieldBlank,
//listWidth:200,//指定下拉列表的宽度
store: new Ext.data.JsonStore(
{
autoDestroy: true,
url: 'app/' + moduleName + '/getTableTypes.php',
storeId: 'tableTypes',
root: 'types',
idProperty: 'value',
fields: ['value', 'desc']
}),
valueField: 'value',
displayField: 'desc'
});
var url='app/' + moduleName + '/getTableList.php?';
url+=formPanel.form.getValues(true);

tlmiai 2009-12-01
  • 打赏
  • 举报
回复
把valueField设置成你想要的列,然后combox.getValue就可以了
JavaAlpha 2009-09-19
  • 打赏
  • 举报
回复
我也遇到和楼主一样的问题的 期待解决中 楼主怎么做的呢???
yht3166 2009-07-15
  • 打赏
  • 举报
回复
combo.getValue() 可以直接获得valueField 的值
Ghost_520 2009-03-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Ghost_520 的回复:]

在 fields: ['title','fid'] 中 把 fid 和 title 的位置换一下 如:fields: ['fid','title'] ,而且你的 select 事件的参数错了,如果实在不行的话,参照我下列贴上的源码进行对比。


JScript code
var combo = new Ext.form.ComboBox({
id:'filiale',
fieldLabel:"所在组",
hiddenName:"groupId", // 下拉框在 HTML 中显示的名称
allowBlank :false,
width:201,
selectOnFocus…
[/Quote]

请用这段代码试了再说,谢谢。。。
qianqian51267 2009-03-24
  • 打赏
  • 举报
回复

var combo = new Ext.form.ComboBox({
width:127,
height:50,
renderTo:'div_com',
mode:'remote',
triggerAction:'all',
id:'filiale',
name:'filiale',
value:'请选择..',
allowBlank: false,
handleHeight:5,
hiddenName:'fid',
listWidth :150,
maxHeight:100,
readOnly:true,
valueFiled:'fid',
displayField:'title',
store:new Ext.data.JsonStore({
url: '../../MyPages/Colligate/UploadFiliale.aspx?id='+encodeURI(v),
root: 'data',
fields: ['fid','title']
}),
listeners:{
'select':function(arg){
alert(arg.value);
return false;
var d = arg.value;
alert(Ext.get("filiale").dom.value);
alert(Ext.getCmp("filiale").getValue());
}
}
});


无论怎么取,取出来的都是title,fid仍然取不到。
qianqian51267 2009-03-24
  • 打赏
  • 举报
回复
{
data:[
{"title":"计划经营部","fid":"c194"},{"title":"物资设备部","fid":"c195"},{"title":"工程管理部","fid":"c196"},{"title":"安全质检部","fid":"c197"},{"title":"财务部","fid":"c198"},
{"title":"成本核算部","fid":"c199"},{"title":"社会职务部","fid":"c200"},{"title":"审计科","fid":"c201"},
{"title":"办公室","fid":"c202"},
{"title":"企管部","fid":"c203"},
{"title":"人力资源部","fid":"c204"},
{"title":"公司党委","fid":"c205"},
{"title":"公司团委","fid":"c206"},
{"title":"公司纪委","fid":"c207"},
{"title":"组织部","fid":"c208"},
{"title":"监察科","fid":"c209"},
{"title":"工会","fid":"c210"}
]
}
这事从后台返回的JSON字符串
Ghost_520 2009-03-24
  • 打赏
  • 举报
回复

在 fields: ['title','fid'] 中 把 fid 和 title 的位置换一下 如:fields: ['fid','title'] ,而且你的 select 事件的参数错了,如果实在不行的话,参照我下列贴上的源码进行对比。


var combo = new Ext.form.ComboBox({
id:'filiale',
fieldLabel:"所在组",
hiddenName:"groupId", // 下拉框在 HTML 中显示的名称
allowBlank :false,
width:201,
selectOnFocus:true,
valueField:"fid", // 提交表单时,下拉框的值
displayField:'title', // 显示在页面上下拉框的值
emptyText:'请选择..',
editable:false,
mode:"local",
forceSelection:true,
triggerAction:'all',
allowBlank:false,
store: new Ext.data.JsonStore({
// 动态从后台提取数据并填充到 ComboBox
autoLoad:true,
fields: ['fid', 'title'],
url: '../../MyPages/Colligate/UploadFiliale.aspx?id='+encodeURI(v),
}),
typeAhead: true,
listeners:{
select :function(combo,record,index){
alert(combo.value);
}
}
});

louis75168611 2009-03-24
  • 打赏
  • 举报
回复
呵呵,理解错了。sorry
你忘记在combobox组件中添加一个属性了。
那就是hiddenName:'xxx'
这里的xxx指的对应传回来json值所对应的索引。

例如:
{data:[
{text:'沈阳',code:'024'},
{text:'大连',code:'0411'}
]}

那么hiddenName:'code'

这么解释应该清楚吧!!!
louis75168611 2009-03-24
  • 打赏
  • 举报
回复
var comtext = combo.getRawValue();
就能获得text的内容。

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧