我在访问无线电组中所选单选按钮的值时遇到一些困难。基于论坛和网络上其他帖子的讨论,我尝试了许多不同的方法。不幸的是,没有足够的幸运(或熟练)让它工作。根据以下FormPanel配置,我希望有人可以告诉我如何在'mainPhone'组中获取所选收音机的价值。
谢谢!
想要更新以表明我能够从stackoverflow获得响应,而EXT-JS论坛没有向我提供任何帮助。方法去stackoverflow!
马特
function createForm(elem) {
var myForm2 = new Ext.form.FormPanel({
renderTo:elem,
width:425,
frame:true,
style:"margin: 10px auto 10px auto;",
items: [{xtype:'fieldset',
title: 'Contact Info',
autoHeight:true,
items :[new Ext.form.RadioGroup({
fieldLabel: 'Main Phone',
vertical: false,
id:"mainPhone",
items: [
{boxLabel: 'Home', name: 'id-1', inputValue: 'H', checked:true},
{boxLabel: 'Work', name: 'id-1', inputValue: 'W'},
{boxLabel: 'Other', name: 'id-1', inputValue: 'O'}
]
}),
new Ext.form.TextField({
id:"frm_CreateCustomerHomePhone",
fieldLabel:"Home Phone",
width:275,
allowBlank:true
}),
new Ext.form.TextField({
id:"frm_CreateCustomerWorkPhone",
fieldLabel:"Work Phone",
width:275,
allowBlank:true
})
new Ext.form.TextField({
id:"frm_CreateCustomerOtherPhone",
fieldLabel:"Other Phone",
width:275,
allowBlank:true
})
]}]});
}
答案 0 :(得分:9)
这是一个疯狂的猜测,但是如何:
myForm2.getForm().getValues()['id-1'];
答案 1 :(得分:5)
无线电组本身的方法getValue()
将返回已检查的对象(如果有),否则返回undefined。
(顺便说一句,我为我的盒子设置值而不是inputValue,虽然我认为它没有太大区别,也许它在最后一个“getValue”上),我正在使用extjs 3.0,而我的radiogroup配置与您的略有不同。
var checkedItem = Ext.getCmp('mainPhone').getValue();
if (checkedItem == undefined) return '';
return checkedItem.getGroupValue();
// The getGroupValue will return the value of the checked option in a group,
// unfortunately, it only seems to work on the items and not the radiogroup
// itself
答案 2 :(得分:3)
我知道这个问题已经过时了,但我正在添加这个问题以供参考。以下片段对于Ext 2.2 afaik有效。
Ext.getCmp("mainPhone").items.get(0).getGroupValue();
答案 3 :(得分:2)
Lo-Tan的答案对我有用。我也在使用extjs 2.2.1 像我一样,你可能没有ext.Form.Formpanel,只是一个搜索框和一个无线电组。我使用此代码从无线电组中获取值。
我的广播组:
var begrens_sok = new Ext.form.RadioGroup({
fieldLabel: 'Begrens søket',
columns: 1,
name: 'sokspecs',
id:'sokspecs',
items: [
{boxLabel: 'Scientific name', name: 'sokspec', inputVale:'SN'},
{boxLabel: 'Norsk navngruppe', name: 'sokspec', inputValue:'NNG'},
{boxLabel: 'Norsk navnart', name: 'sokspec', inputValue:'NNA'},
{boxLabel: 'Prosjektsøk', name: 'sokspec', inputValue:'PROJ'},
{boxLabel: 'Fritekst søk', name: 'sokspec', inputValue:'FSOK', 'id':'sokspec', checked: true}
]
});
要获得检查的radiobutton值,我使用:
var radiovalue= Ext.getCmp('sokspecs').items.get(0).getGroupValue()
答案 4 :(得分:1)
如果您想获得该字段的具体值,请使用
myForm2.getForm().findField('id-1').getGroupValue();
答案 5 :(得分:0)
不确定这是否过于简单,但我可以使用'inputValue'属性访问该值(在Ext 3.3.1中)。
var radio = ...;
var value = radio.inputValue;
答案 6 :(得分:0)
如果你使用MVC,可能你会尝试忽略使用id。因此,获得变革事件价值的解决方案之一是
change : function(radioButton, newValue, oldValue, eOpts){
console.log(newValue.individual);
}
答案 7 :(得分:-2)
function get_radio_value()
{
for( var i=0; i < document.myForm.mainPhone.length; i++ )
{
if( document.myForm.mainPhone[ i ].checked )
{
return document.myForm.mainPhone[ i ].value;
}
}
}