2009-01-05 92 views
7

我有一些困難訪問在radiogroup中選定的單選按鈕的值。基於論壇和網絡上其他帖子的討論,我嘗試了許多不同的方法。不幸的是,運氣不夠好(或熟練)。基於下面的FormPanel配置,我希望有人能夠告訴我如何獲得組中'mainPhone'中選定電臺的值。Ext RadioGroup - 如何訪問所選單選按鈕的值?

謝謝!

想要更新以表明我能夠從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 
       }) 
    ]}]});    
} 

回答

9

這是胡亂猜測的東西,但這個怎麼樣:

myForm2.getForm().getValues()['id-1']; 
+0

這一個做到了!非常感謝 – Matty 2009-01-06 14:05:33

-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; 
     } 
    } 
} 
5

收音機組本身的方法getValue()將返回的對象檢查,如果有的話,否則,它返回undefined。我使用的是extjs 3.0,而且我認爲它沒有什麼區別,也許它在最後一個「getValue」),我使用的是extjs 3.0,而且我也使用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 
1

,如果你想獲得該領域的具體數值,使用

myForm2.getForm().findField('id-1').getGroupValue(); 
3

我知道這個問題是舊的,但我加入這個以供參考。以下片段適用於Ext 2.2 afaik。

Ext.getCmp("mainPhone").items.get(0).getGroupValue(); 
0

不確定這是否太簡單,但我能夠使用'inputValue'屬性訪問值(在分機3.3.1)。

var radio = ...; 
var value = radio.inputValue; 
2

Lo-Tan的答案適用於我。我也使用extjs 2.2.1 像我一樣,你可能沒有ext.Form.Formpanel,只是一個搜索框和一個radiogroup。我使用此代碼從無線電組中獲取值。

我的單選按鈕組:

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() 
0

如果你使用MVC,也許你嘗試使用IDS忽略。所以其中一個解決方案,然後獲得價值變化事件是

change : function(radioButton, newValue, oldValue, eOpts){ 
     console.log(newValue.individual); 
} 
相關問題