3

FormPanel内でxtypeを使用してextJS4で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

リスナー変更イベントを無線グループ自体(各ボタンではなく)に設定すると、1つのイベントのみを処理する必要があります。リスナー/ハンドラーが呼び出され、渡さnewValoldValます。newVal次に、選択した値としてを取得できます。

于 2012-12-11T17:20:27.577 に答える