Ext RadioGroup - Как получить доступ к значению выбранного радиокнопки? - PullRequest
7 голосов
/ 06 января 2009

У меня возникли трудности с доступом к значению выбранной радиокнопки в радиогруппе. Я попробовал несколько различных подходов, основанных на обсуждении в других сообщениях на форуме и в Интернете. К сожалению, не повезло (или опытным) достаточно, чтобы заставить его работать. Основываясь на следующей конфигурации FormPanel, я надеялся, что кто-нибудь покажет мне, как получить значение выбранного радио в группе «mainPhone».

Спасибо!

Хотел обновить, чтобы указать, что я смог получить ответ от stackoverflow, в то время как форумы EXT-JS не оказали мне никакой помощи. Способ стека переполнения!

Мэтт

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

Ответы [ 8 ]

9 голосов
/ 06 января 2009

Это что-то дикое предположение, но как насчет этого:

myForm2.getForm().getValues()['id-1'];
5 голосов
/ 14 августа 2009

Метод getValue() в самой группе радиостанций вернет проверенный объект, если он есть, в противном случае он вернет неопределенное значение.

(кстати, я устанавливаю значение вместо inputValue для своих ящиков, хотя я не думаю, что это имеет большое значение, может быть, это относится к последнему "getValue"), я использую extjs 3.0, и мой конфигурация радиогруппы немного отличается от вашей.

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
3 голосов
/ 19 сентября 2009

Я знаю, что этот вопрос старый, но я добавляю его для справки. Следующий фрагмент действителен для Ext 2.2 afaik.

Ext.getCmp("mainPhone").items.get(0).getGroupValue();
2 голосов
/ 19 мая 2012

Ответ от 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()
1 голос
/ 14 августа 2009

, если вы хотите получить конкретное значение поля, используйте

myForm2.getForm().findField('id-1').getGroupValue();
0 голосов
/ 27 ноября 2013

если вы используете MVC, вероятно, вы пытаетесь игнорировать использование идентификаторов. поэтому одно из решений для получения значения в событии изменения -

change : function(radioButton, newValue, oldValue, eOpts){
        console.log(newValue.individual);
}
0 голосов
/ 27 января 2011

Не уверен, что это слишком просто, но я смог получить доступ к значению (в Ext 3.3.1), используя свойство inputValue.

var radio = ...;
var value = radio.inputValue;
0 голосов
/ 06 января 2009
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;
       }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...