extjs - 如何将 onClick 方法添加到 TextField(ExtJS 框架)?

标签 extjs onclick textfield

我想知道如何将 onClick() 方法添加到 Ext.form.Text 组件。

如果组件是一个按钮,那么我所要做的就是添加这一行:

handler: function() {alert("Hello!");}

但是如果组件是文本字段,那一行就不起作用了。看下面的例子:

Ext.create('Ext.form.Panel', {
    title: 'Contact Info',
    width: 300,
    bodyPadding: 10,
    renderTo: Ext.getBody(),
    items: [{
        id: 'myButton',
        xtype: 'textfield',
        name: 'name',
        fieldLabel: 'Name',
        style: 'background-color: #ddd;',
        allowBlank: false,
        handler: function() {Ext.getCmp('myButton').setValue("TEXT")} // Does not work!
    }, {
        xtype: 'button',
        name: 'email',
        fieldLabel: 'Email Address',
        style: 'background-color: green',
        textfieldStyle: 'background-color: green',
        handler: function() {Ext.getCmp('myButton').setValue("TEXT")} // Works!

    }]
});

最佳答案

Handler 是默认 Action 监听器的快捷方式。对于按钮,这显然是单击,但文本字段没有默认操作。此外,文本字段实际上不会触发点击事件,但您始终可以向 dom 元素添加事件处理程序:

Ext.create('Ext.form.Panel', {
    title: 'Contact Info',
    width: 300,
    bodyPadding: 10,
    renderTo: Ext.getBody(),
    items: [{
        id: 'myButton',
        xtype: 'textfield',
        name: 'name',
        fieldLabel: 'Name',
        style: 'background-color: #ddd;',
        allowBlank: false,
        listeners: {
            render: function() {
                this.getEl().on('mousedown', function(e, t, eOpts) {
                    Ext.getCmp('myButton').setValue("TEXT")
                });
            }
        }
    }]
});

关于extjs - 如何将 onClick 方法添加到 TextField(ExtJS 框架)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9206768/

相关文章:

css - 在 ExtJS 3 到 4 迁移时保持 CSS 样式

java - 登录表单: Keyboard hides on button click,,但点击edittext后不再显示

javascript - 在 react-csv 中下载 CSV 后调用函数

string - 使用 SwiftUI 在 UserDefaults 中保存来自 TextField 的字符串

ios - textFieldShouldReturn 不再有效

python - textfield 和 charfield 的渲染去掉了额外的空白(Django/Python)

javascript - Sencha Touch 中的 id 和 itemID 有什么区别?

javascript - 如何将 TreeStore 数据放入 ComboBox 中

macos - 如何从 Mac 卸载 Sencha Cmd v6.0.0.202?

javascript - 从 onclick 属性调用 e.stopImmediatePropagation()