3

我正在使用 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},
    ]
 }

我很困惑在哪里添加检查/单击事件的侦听器。提前致谢。

4

2 回答 2

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 ();
                }
            }
        }]
    }]
});

再见

于 2012-05-23T11:31:30.703 回答
2

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

于 2012-12-11T17:20:27.577 回答