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

Я создал RadioGroup, используя код

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);

Но это не работает.


person Sapan    schedule 06.05.2011    source источник


Ответы (6)


radios.items.items должен вернуть вам переключатели внутри группы переключателей. Затем вы можете использовать для них функцию setValue(), чтобы отметить или снять отметку.

radios.items.items[index].setValue(true/false);
person Pulkit Goyal    schedule 06.05.2011
comment
но как нам использовать setValue() RadioGroup? это работает для отдельных, но как насчет общей группы - person applepie; 24.07.2012

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);
            }
        }
    ]
});
person mustafa.0x    schedule 23.12.2013

чтобы выбрать "Электронная почта", например

radios.setValue({communication: 1});

Общее использование:

radioGroup_var.setValue({radioGroup_name: 'inputValue'});
person Haddad    schedule 07.07.2013

Это работает для меня

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

Где входное значение может быть значением поля inputValue переключателя.

Ваше здоровье

person r366y    schedule 11.09.2012

Попробуйте передать массив значений методу setValue следующим образом:

radios.setValue([true, false]);

Это будет работать в ExtJs 3.x, не уверен в ExtJs4, проверьте API.

person shane87    schedule 06.05.2011

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

person goldsky    schedule 13.04.2016