Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7096221
  • 博文数量: 703
  • 博客积分: 10821
  • 博客等级: 上将
  • 技术积分: 12042
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-02 10:41
个人简介

中科院云平台架构师,专注于数字化、智能化,技术方向:云、Linux内核、AI、MES/ERP/CRM/OA、物联网、传感器、大数据、ML、微服务。

文章分类

全部博文(703)

分类: Web开发

2011-05-26 09:52:26

ExtJs中radioGroup和checkboxGroup的取值和赋值

ExtJs中默认RadioGroup和checkboxgroup的getValue方法是个空方法,直接用的话取不到值,需要重写:


下面是重写CheckboxGroup的代码:

Ext.override(Ext.form.CheckboxGroup, {

getValue: function() {

   var v = [];
this.items.each(function(item) {

if (item.getValue()) {

    v.push(item.getRawValue());

} else {

    v.push('');      
     
}
});
return v;
},

setValue: function(vals) {

var a = [];

if (Ext.isArray(vals)) {

a = vals;

} else {

a = [vals];

}

this.items.each(function(item) {

item.setValue(false); // reset value

for ( var i = 0 ; i < a.length ; i ++ ) {

var val = a[i];

if ( val == item.getRawValue() ) {

item.setValue(true);

}

};

});

}

});

Ext.override(Ext.form.RadioGroup, {

getValue: function() {

var v;

this.items.each(function(item) {

if ( item.getValue() ) {

v = item.getRawValue();

return false;

}

});

return v;

}

setValue: function(v) {

if(this.rendered)

this.items.each(function(item) {

item.setValue(item.getRawValue() == v);

});

else

for(k in this.items) this.items[k].checked = this.items[k].inputValue == v;

}

});

下面是重写RadioGroup的代码:

Ext.override(Ext.form.RadioGroup, {

getValue: function() {

   var v;

this.items.each(function(item) {

   if ( item.getValue() ) {

    v = item.getRawValue();

return false;

}

});

return v;

},

setValue: function(v) {
if(this.rendered)
this.items.each(function(item) {
item.setValue(item.getRawValue() == v);
});
else
for(k in this.items) this.items[k].checked = this.items[k].inputValue == v;
}
});


下面是我的radioGroup代码:

var radio = new Ext.form.RadioGroup({
    id : "radio",
    fieldLabel : "其他",
    baseCls : "x-plain",
    columns : 2,
    name : "other",
    items : [{
       inputValue : "0100",
       boxLabel : "教育"
      }, {
       inputValue : "0200",
       boxLabel : "考试"
      }]

});

然后用Ext.getCmp("other").getValue()就可以取到被选中的值

阅读(12320) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~