Ext JS 4无线电组检查事件

时间:2012-05-23 07:41:29

标签: extjs radio-button radio-group ext4

我正在使用FormPanel内的xtype在extJS 4中创建一个radioGroup。我正在尝试在检查无线电时启用/禁用文本字段。

{
xtype: 'radiogroup',
fieldLabel: 'Enable / Disable ',
columns: 2,
vertical: true,
items: [
     {boxLabel: 'Enable', name: 'formtype', inputValue: '1'},
     {boxLabel: 'Disable', name: 'formtype', inputValue:'2',checked:true},
    ]
 }

我很困惑在哪里添加检查/点击事件的监听器。非常感谢。

2 个答案:

答案 0 :(得分:11)

您必须在每个单选按钮上处理“更改”事件。单选按钮更改(选中)后,启用/禁用文本字段。

举个例子:

Ext.create ('Ext.container.Container', {
    renderTo: Ext.getBody () ,
    items: [{
        xtype: 'textfield' ,
        id: 'tf' ,
        disabled: true ,
        fieldLabel: 'My Text'
    } , {
        xtype: 'radiogroup',
        fieldLabel: 'Enable / Disable ',
        columns: 2,
        vertical: true,
        items: [{
            boxLabel: 'Enable',
            name: 'formtype' , 
            inputValue: '1' ,
            listeners: {
                change: function (cb, nv, ov) {
                    if (nv) Ext.getCmp('tf').enable ();
                }
            }
        } , {
            boxLabel: 'Disable', 
            name: 'formtype', 
            inputValue:'2',
            checked: true ,
            listeners: {
                change: function (cb, nv, ov) {
                    if (nv) Ext.getCmp('tf').disable ();
                }
            }
        }]
    }]
});

答案 1 :(得分:2)

如果您在广播组本身(而不是每个按钮)上设置了侦听器更改事件,则只需处理一个事件。您的侦听器/处理程序将被调用并传递newValoldVal。然后,您可以将newVal作为所选值。