启用和禁用文本字段,以便用户有一个文本字段来输入extjs中的数据

时间:2013-04-17 09:47:27

标签: extjs extjs4 extjs-mvc

  

启用或禁用文本字段,以便用户只能启用一个文本字段来输入数据。

     

说明:

如果他们是两个文本字段: textfield1 textfield2 。   如果用户希望在 textfield1 中输入数据,则应禁用 textfield2 。   在这种情况下:        用户在 textfield1 中输入数据,并希望他想输入 textfield2 而不是 textfield1 的输入,然后应该从 textfield1 ,应该禁用它, textfield2应该启用

  

示例代码:我不知道使用哪些事件侦听器来获取此功能。

{
    xtype: 'textfield',
    width: 215,
    fieldLabel: 'Source1',
    id: 'textfield1',
    listeners: {

    }
}, {
    xtype: 'textfield',
    id: 'textfield2',
    width: 215,
    fieldLabel: 'Source2',
    listeners: {

    }
}
  

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

        Ext.require([
            'Ext.form.*'
        ]);

        Ext.onReady(function() {

            var formPanel = Ext.create('Ext.form.Panel', {
                frame: true,
                title: 'Form Fields',
                renderTo: Ext.getBody(),
                width: 340,
                bodyPadding: 5,

                fieldDefaults: {
                    labelAlign: 'left',
                    labelWidth: 90,
                    anchor: '100%'
                },

                items: [{
                        id: 'ftf1',
                        xtype: 'textfield',
                        name: 'textfield1',
                        fieldLabel: 'Text field1',
                        value: ''
                    },{
                        id: 'ftf2',
                        xtype: 'textfield',
                        name: 'textfield2',
                        fieldLabel: 'Text field2',
                        value: ''                            
                    }]
            });

            var ftf1 = Ext.getCmp('ftf1');
            ftf1.on('change', function(ftf1, newValue, oldValue, eOpts ) {
                if (newValue.valueOf()!='') {
                    Ext.getCmp('ftf2').disable();
                } else {
                    Ext.getCmp('ftf2').enable();
                }
            })
            var ftf2 = Ext.getCmp('ftf2');
            ftf2.on('change', function(ftf2, newValue, oldValue, eOpts ) {
                if (newValue.valueOf()!='') {
                    Ext.getCmp('ftf1').disable();
                } else {
                    Ext.getCmp('ftf1').enable();
                }
            })

        });