关于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的话,限制就太大了。这是我最后测出来的结果。 展开
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的话,限制就太大了。这是我最后测出来的结果。 展开
1个回答
展开全部
change事件,有下面四个参数,第一个参数,返回的是你点击的那个radio的对象,你可以根据你在各个radio里设置的id,或者itemId来判别是哪个别点到了,然后来判断是不是要进行操作。
单纯设置一个alert,就会像你说的,被check的和被uncheck的,分别触发一次。
Ext.form.field.Field this,
Object newValue,
Object oldValue,
Object eOpts
单纯设置一个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。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询