关于extjs中radiogroup选中问题,使用change事件,但是每次单击的时候alert()测试,会出现两次

一次是刚触发的,另一次是之前触发的按钮change后触发的事件。现在想得到checked的值。怎么得到。。varcheckbox=Ext.create('Ext.form... 一次是刚触发的,另一次是之前触发的按钮change后触发的事件。现在想得到checked的值。怎么得到。。
var checkbox = Ext.create('Ext.form.Panel', {
bodyPadding : 10,
width : 500,
frame:true,
items : [ {
xtype : 'radiogroup',
colums : 3,
id:'toppings',
items : [ {
boxLabel : '全体',
name : 'topping',
inputValue : '全体--',
}, {
boxLabel : '计算机系',
name : 'topping',
inputValue : '计算机系--',
}, {
boxLabel : '个人',
name : 'topping',
inputValue : '个人--',
} ],
listeners :{
'change':function(){
var obj = Ext.getCmp("toppings").items.items;
for(var i in obj){
if(obj[i].checked){
Ext.Msg.alert("Tip","您点击的radio名称是*****"+obj[i].inputValue);
}
obj[i].checked = false;
}
}
}
}]
});
如果想显示 加个renderTo:Ext.getBody()即可。我是将这个放到其他容器里所以没加。
探梦今生您的回答如果设置id的话,限制就太大了。这是我最后测出来的结果。
展开
 我来答
探梦今生
2012-02-22 · TA获得超过367个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:487万
展开全部
change事件,有下面四个参数,第一个参数,返回的是你点击的那个radio的对象,你可以根据你在各个radio里设置的id,或者itemId来判别是哪个别点到了,然后来判断是不是要进行操作。

单纯设置一个alert,就会像你说的,被check的和被uncheck的,分别触发一次。

Ext.form.field.Field this,
Object newValue,
Object oldValue,
Object eOpts
更多追问追答
追问
listeners :{
'change':function(){
var obj = Ext.getCmp("toppings").items.items;
for(var i in obj){
if(obj[i].checked){
Ext.Msg.alert("Tip","您点击的radio名称是*****"+obj[i].inputValue);
}
obj[i].checked = false;
}
}
}

以上toppings为items的id。
追答
误会,我不是说设置ID

我是说,在您的change函数中,加上extjs提供的那四个参数,然后从第一个参数就能判断出哪个被点了。
第一个参数里,有被点击那个radio的所有属性信息,您可以根据显示的文字来判断。不一定非得ID。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式