функция setValue() Радиогруппы extJS
Я создал радиогруппу, используя код
var radios = new Ext.form.RadioGroup({
columns : 2,
items: [
{boxLabel: 'E-Mail', name: 'communication', inputValue: 1},
{boxLabel: 'Nagios', name: 'communication', inputValue: 2}
]
});
Я хочу проверить один из переключателей на каком-то событии. Как это сделать? Я попытался использовать:
radios.setValue(true, false);
но это не работает.
6 ответов
радио.предметы.элементы должны возвращать вам переключатели внутри группы Радио. Затем вы можете использовать функцию setValue() для их проверки или снятия.
radios.items.items[index].setValue(true/false);
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);
}
}
]
});
выбрать 'E-Mail', например
radios.setValue({communication: 1});
общее пользование:
radioGroup_var.setValue({radioGroup_name: 'inputValue'});
это работает для меня
radios.setValue({communication:<input value>});
здесь входное значение может быть значение inputValue
попробуйте передать массив значений методу setValue следующим образом:
radios.setValue([true, false]);
Это будет работать в ExtJs 3.x не уверен в ExtJs4 проверьте api.
Это старый поток, но Google всегда находит это первым, поэтому я просто брошу свое решение (на Ext 3.4.1.1) здесь.
попробуйте это:
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);
или для большей панели форм formPanel.getForm().setValues([{communication: 2}])
должно сработать.