Функция ExtJS RadioGroup setValue()

#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}])
теперь должно сработать.