如何以编程方式在 ExtJS 4 中触发 keydown 事件

Posted

技术标签:

【中文标题】如何以编程方式在 ExtJS 4 中触发 keydown 事件【英文标题】:How to programmatically fire keydown event in ExtJS 4 【发布时间】:2013-05-31 13:33:17 【问题描述】:

在 ExtJs 4 中,我如何以编程方式触发“keydown”(或“keypress”)事件(在 TAB 键上)? 我应该想模拟一个 TAB 按键以响应另一个事件。 我试过代码(在这个事件处理程序中):

field.fireEvent('keydown', keyCode: 9)

但它不起作用......

【问题讨论】:

【参考方案1】:

我也在寻找解决方案....我有一个数字字段组件和一个弹出式键盘...当我尝试单击键盘弹出式上的键 ('.') 时...我想附加到数字字段(比如当你按'。')......但没有任何反应。我试试这个:

        // Ext version 5.1

        var field = Ext.getCmp('numberfield-test');

        var event = Ext.create('Ext.event.Event', 
            key: 110  // Want to emulate '.' key
        );

        // none of the following works
        field.fireEvent('keydown', [ field, event ]);
        field.fireEvent('keypress', [ field, event ]);
        field.fireEvent('keyup', [ field, event ]);

        // neither this ones
        field.fireEvent('keydown', field, event);
        field.fireEvent('keypress', field, event);
        field.fireEvent('keyup', field, event);

【讨论】:

Ext.create('Ext.event.Event', keyCode: 110 ) 为我工作【参考方案2】:

你可能需要稍微窥探一下你的 DOM(看看里面有什么元素,比如下面例子中的fileInputEl),但这对我有用:

var uploadField = Ext.getCmp( 'uploadField' );        
uploadField.fileInputEl.dom.click();

【讨论】:

以上是关于如何以编程方式在 ExtJS 4 中触发 keydown 事件的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式隐藏 TabPanel 中的 Tab(ExtJS 3)

ExtJS 4 - 如何禁用特定行中的复选框

如何以编程方式在 LibreOffice Calc 中触发 AutoFit / SetOptimalHeight?

如何在 Swift 4 中以编程方式注册 UITableViewHeaderFooterView?

如何通过在Vue中单击以编程方式触发可拖动的“移动”事件?

ExtJs 3.x 以编程方式滚动 ListView