javascript - examples - Ext RadioGroup-¿Cómo acceder al valor del botón de opción seleccionado?
extjs gpl (8)
El método getValue()
en el grupo de radio devolverá el objeto que está marcado, si lo hay, de lo contrario, devuelve indefinido.
(por cierto, establecí el valor en lugar de inputValue para mis cuadros, aunque no creo que marque una gran diferencia, tal vez lo haga en el último "getValue"), estoy usando extjs 3.0, y mi configuración de radiogrupo es un poco diferente que el tuyo
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
Tengo dificultades para acceder al valor del botón de opción seleccionado en un grupo de radio. Intenté una serie de enfoques diferentes basados en la discusión en otras publicaciones en el foro y en la web. Lamentablemente no hemos tenido la suerte (o la destreza) de hacerlo funcionar. Basado en la siguiente configuración de FormPanel, esperaba que alguien me mostrara 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 de EXT-JS no me proporcionaron ninguna ayuda. ¡Así se hace stackoverflow!
Mate
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
})
]}]});
}
Esto es algo así como una conjetura descabellada, pero ¿qué tal esto?
myForm2.getForm().getValues()[''id-1''];
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;
}
}
}
si desea obtener el valor específico del campo, use
myForm2.getForm().findField(''id-1'').getGroupValue();
Sé que esta pregunta es antigua, pero la agrego como referencia. El siguiente snipit es válido para Ext 2.2 afaik.
Ext.getCmp("mainPhone").items.get(0).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;
La respuesta de Lo-Tan funciona para mí. También estoy usando extjs 2.2.1 Como yo, puede que no tengas un ext.Form.Formpanel sino solo un cuadro de búsqueda y un grupo de radio. 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 marcado del botón de radio, uso esto:
var radiovalue= Ext.getCmp(''sokspecs'').items.get(0).getGroupValue()
si está utilizando MVC, probablemente intente ignorar el uso de identificadores. Entonces, una de las soluciones para obtener valor en el evento de cambio es
change : function(radioButton, newValue, oldValue, eOpts){
console.log(newValue.individual);
}