【问题标题】:ExtJS 3 keep combobox always expandedExtJS 3 保持组合框总是展开
【发布时间】:2021-12-01 15:26:16
【问题描述】:

我目前正在使用ExtJS 3.0.0 处理一个旧项目,无法升级版本。我的目标是让组合框始终打开,以便用户不必单击箭头即可查看选项。

我发现通过覆盖 collapse 事件监听器,我可以防止组合框在展开后关闭

   myCombo.addListener(
        'collapse',
        function() { 
            this.expand();
         }
    );

但是,一旦面板被渲染,我就找不到任何以编程方式扩展它的方法。我尝试了specialkeykeypress 事件,但我不知道应该如何触发它们。

关于如何实现这一点的任何想法?

【问题讨论】:

    标签: javascript extjs extjs3


    【解决方案1】:

    按键事件应该如下工作,

    你可以试试(extjs):

    new Ext.form.TextField({
        ...
        enableKeyEvents: true,
        listeners: {
            keyup: function(form, e) {
                alert(e.getKey()); 
                if (e.getKey() == "keyA"){
                      alert("key A has been pressed");
               }
            }
        }
    }); 
    

    或尝试(js):

        listen: function () {
            document.addEventListener('keydown', function (key) {
                if (key.keyCode === 87){
              alert("pressed W")
               }
            });
    

    如需键码列表,请访问https://gist.github.com/lbj96347/2567917

    更多信息也可以在这里找到https://forum.sencha.com/forum/showthread.php?52786-about-textfield-keypress-event

    【讨论】:

    • 是的,我已经看到了监听器部分,但我不知道如何触发它。例如,类似 myCombo.fireEvent('specialkey', ???)。我可以使用的键码是 40(向下箭头),因为这似乎扩展了组合框。另外,我不知道如何在面板渲染后自动将光标放置在字段内。
    • 请注意您不能移动光标,但是您可以通过代码让它聚焦
    猜你喜欢
    • 2013-08-29
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    相关资源
    最近更新 更多