【问题标题】:How do I access a numberfield value from a button's handler in ExtJs 4?如何从 ExtJs 4 中的按钮处理程序访问 numberfield 值?
【发布时间】:2012-09-05 08:32:23
【问题描述】:

我有一个包含以下项目的面板:

{
    xtype: 'numberfield',
    id: 'articleFastSearch',
    listeners: {
        scope: this,
        specialkey: function(field, e) {                            
            if (e.getKey() == Ext.EventObject.ENTER) {
                var val = this.rawValue;
                // Do stuff with val
            }
        }
    }
},
{
    id: 'articleFastSearchBtn',
    text: 'Open article',
    scope: this,
    handler: function(btn) {
        console.log(Ext.get("articleFastSearch"));
        var val = Ext.get("articleFastSearch").getValue();
        console.log(val);
        // Do stuff with val
    }
}

numberfield 上的侦听器工作正常,但我无法从按钮处理程序访问 numberfield 值。我尝试命名数字字段并使用this.articleFastSearch.getValue(),但没有奏效。我认为范围可能有误?

然后我求助于给 numberfield 一个 id 并尝试通过 dom 访问它,如上所示。这给出了一个奇怪的结果,因为返回的构造函数实际上包含一个HTMLTableElement 而不是一个数字字段。我在属性中找不到值,所以我很困惑......页面上没有其他具有相同 ID 的元素。有什么想法吗?

理想情况下,如果可能的话,我宁愿通过 this 变量访问该值,但我会满足于任何可行的解决方案!

【问题讨论】:

    标签: javascript dom extjs extjs4 extjs4.1


    【解决方案1】:

    Ext.get() 返回一个Ext.Element。您正在寻找的是Ext.getCmp() 您还应该考虑使用新的Ext.ComponentQuery,它也可用作从Ext.container.AbstractContainer 继承的所有类中的向上/向下快捷方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-02
      • 1970-01-01
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多