7

我在访问单选组中选定单选按钮的值时遇到了一些困难。根据论坛和网络上其他帖子的讨论,我尝试了许多不同的方法。不幸的是,还没有足够幸运(或熟练)让它工作。基于以下 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
                 })
    ]}]});              
}
4

8 回答 8

10

这是一个疯狂的猜测,但是这个怎么样:

myForm2.getForm().getValues()['id-1'];
于 2009-01-05T21:59:06.800 回答
5

单选组本身的方法getValue()将返回被检查的对象(如果有),否则返回未定义的。

(顺便说一下,我为我的盒子设置了 value 而不是 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
于 2009-08-14T15:28:46.413 回答
3

我知道这个问题很老,但我将其添加以供参考。以下 snipit 适用于 Ext 2.2 afaik。

Ext.getCmp("mainPhone").items.get(0).getGroupValue();
于 2009-09-19T18:32:14.140 回答
3

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}
 ]  
    });

要获得选中的单选按钮值,我使用以下命令:

var radiovalue=  Ext.getCmp('sokspecs').items.get(0).getGroupValue()
于 2012-05-19T12:40:26.983 回答
1

如果要获取字段的特定值,请使用

myForm2.getForm().findField('id-1').getGroupValue();
于 2009-08-14T16:22:47.810 回答
0

不确定这是否太简单,但我能够使用“inputValue”属性访问该值(在 Ext 3.3.1 中)。

var radio = ...;
var value = radio.inputValue;
于 2011-01-27T15:21:53.603 回答
0

如果您使用的是 MVC,则可能您尝试忽略使用 id。因此,在变更事件中获得价值的解决方案之一是

change : function(radioButton, newValue, oldValue, eOpts){
        console.log(newValue.individual);
}
于 2013-11-27T13:18:36.627 回答
-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;
       }
    }
}
于 2009-01-05T22:02:03.377 回答