Функция extJS RadioGroup setValue () - PullRequest
8 голосов
/ 06 мая 2011

Я создал 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);

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

Ответы [ 6 ]

13 голосов
/ 23 декабря 2013

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);
            }
        }
    ]
});
11 голосов
/ 06 мая 2011

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

radios.items.items[index].setValue(true/false);
6 голосов
/ 07 июля 2013

для выбора 'E-Mail', например

radios.setValue({communication: 1});

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

radioGroup_var.setValue({radioGroup_name: 'inputValue'});
1 голос
/ 11 сентября 2012

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

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

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

Ура

0 голосов
/ 13 апреля 2016

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

0 голосов
/ 06 мая 2011

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

radios.setValue([true, false]);

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

...