2011-05-06 25 views
8

He creado RadioGroup utilizando el códigoextJS RadioGroup setValue() la función

var radios = new Ext.form.RadioGroup({ 
    columns : 2, 
     items: [ 
      {boxLabel: 'E-Mail', name: 'communication', inputValue: 1}, 
      {boxLabel: 'Nagios', name: 'communication', inputValue: 2} 
     ] 
    }); 

Quiero comprobar uno de los botones de radio en algún evento. ¿Cómo hacerlo? He intentado utilizar:

radios.setValue(true, false); 

pero no está funcionando.

Respuesta

9

radios.items.items debe devolverle los botones de radio dentro del grupo de radio. A continuación, puede utilizar la función setValue() en ellos para marcarlos o desmarcarlos.

radios.items.items[index].setValue(true/false); 
+4

pero, ¿cómo utilizamos setValue() de RadioGroup? esto funciona para cada uno, pero ¿qué pasa con el grupo general – applepie

0

Trate de pasar una matriz de valores al método setValue así:

radios.setValue([true, false]); 

Esto funcionará en ExtJs 3.x no está seguro acerca ExtJs4 comprobar el api.

1

Esto funciona para mí

radios.setValue({communication:<input value>}); 

Donde el valor entrada podría ser el valor de la campo inputValue del botón de opción

Saludos

6

para seleccionar 'E-Mail' , por ejemplo

radios.setValue({communication: 1}); 

uso general:

radioGroup_var.setValue({radioGroup_name: 'inputValue'}); 
12

http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.form.RadioGroup-method-setValue

var form = Ext.create('Ext.form.Panel', { 
    title  : 'RadioGroup Example', 
    width  : 300, 
    bodyPadding : 10, 
    renderTo : Ext.getBody(), 
    items  : [ 
     { 
      xtype  : 'radiogroup', 
      fieldLabel : 'Group', 
      items  : [ 
       { boxLabel : 'Item 1', name : 'rb', inputValue : 1 }, 
       { boxLabel : 'Item 2', name : 'rb', inputValue : 2 } 
      ] 
     } 
    ], 
    tbar  : [ 
     { 
      text : 'setValue on RadioGroup', 
      handler : function() { 
       // Set the value of the 'rb' radio butons 
       var val = {rb : 2}; 
       form.child('radiogroup').setValue(val); 
      } 
     } 
    ] 
}); 
+4

esto es mejor que la respuesta aceptada – Black

0

Se trata de un viejo hilo, pero Google siempre encuentra primero esto, así que voy a tirar mi solución (en Ext 3.4.1.1) aquí .

Prueba esto:

var radios = new Ext.form.RadioGroup({ 
    columns: 2, 
    name: 'communication', // <== ADD THE NAME AGAIN ON HERE 
    items: [ 
     {boxLabel: 'E-Mail', name: 'communication', inputValue: 1}, 
     {boxLabel: 'Nagios', name: 'communication', inputValue: 2} 
    ] 
}); 

radios.setValue(2); o para un panel de formato grande formPanel.getForm().setValues([{communication: 2}]) debería funcionar ahora.