Pregunta

Tengo algunas dificultades para acceder al valor del botón de radio seleccionado en un grupo de radiología. He intentado una serie de enfoques diferentes basados ??en discusiones en otras publicaciones en el foro y en la web. Desafortunadamente, no he tenido la suerte (o habilidad) suficiente para que funcione. Basándome en la siguiente configuración de FormPanel, esperaba que alguien pudiera mostrarme cómo obtener el valor de la radio seleccionada en el grupo 'mainPhone'.

¡Gracias!

Quería actualizar para indicar que pude obtener una respuesta de stackoverflow mientras que los foros EXT-JS no me brindaron ninguna ayuda. ¡Es una forma de apilar flujos!

Matt

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
                 })
    ]}]});              
}
¿Fue útil?

Solución

Esto es una especie de suposición salvaje, pero ¿qué tal esto?

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

Otros consejos

El método getValue () en el grupo de radio en sí mismo devolverá el objeto que se verifica, si lo hay, de lo contrario, devuelve undefined.

(por la forma en que establezco un valor en lugar de inputValue para mis cuadros, aunque no creo que haga mucha diferencia, tal vez lo haga en el último " getValue "), estoy usando extjs 3.0, y La configuración de mi grupo de radio es ligeramente diferente a la tuya.

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

Sé que esta pregunta es antigua, pero estoy agregando esto como referencia. El siguiente snipit es válido para Ext 2.2 afaik.

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

La respuesta de Lo-Tan funciona para mí. También estoy usando extjs 2.2.1 Al igual que yo, es posible que no tenga un ext.Form.Formpanel, sino solo un cuadro de búsqueda y un radiogrupo. Uso este código para obtener el valor del grupo de radio.

Mi grupo de radio:

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

Para obtener el valor del botón de radio verificado, uso esto:

var radiovalue=  Ext.getCmp('sokspecs').items.get(0).getGroupValue()

si desea obtener el valor específico del campo, use

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

No estoy seguro de si esto es demasiado simple, pero pude acceder al valor (en Ext 3.3.1) usando la propiedad 'inputValue'.

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

si está utilizando MVC, probablemente intente ignorar el uso de ID. Entonces, una de las soluciones para obtener valor en el evento de cambio es

change : function(radioButton, newValue, oldValue, eOpts){
        console.log(newValue.individual);
}
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;
       }
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top