#extjs #radio-group #setvalue
#extjs #группа радиосвязи #setvalue
Вопрос:
Я создал радиогруппу, используя код
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);
но это не работает.
Ответ №1:
http://docs.sencha.com/extjs/4.2.2 /#!/api/Ext.form.RadioGroup-метод-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);
}
}
]
});
Ответ №2:
radios.items.items должны возвращать вам переключатели внутри группы радиосвязи. Затем вы можете использовать функцию setValue () для их проверки или снятия флажков.
radios.items.items[index].setValue(true/false);
Комментарии:
1. но как мы используем setValue() от RadioGroup? это работает для отдельных, но как насчет общей группы
Ответ №3:
чтобы выбрать «Электронная почта», например
radios.setValue({communication: 1});
Общее использование:
radioGroup_var.setValue({radioGroup_name: 'inputValue'});
Ответ №4:
Это работает для меня
radios.setValue({communication:<input value>});
Где входным значением может быть значение поля inputValue переключателя
Приветствия
Ответ №5:
Попробуйте передать массив значений методу setValue следующим образом:
radios.setValue([true, false]);
Это будет работать в ExtJS 3.x не уверен насчет ExtJS4, проверьте api.
Ответ №6:
Это старая тема, но 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}])
теперь должно сработать.