ExtJS - 如何访问对象的属性和方法

时间:2013-11-05 12:46:48

标签: javascript object extjs

这可能是一个简单的问题要回答,但我有点困难,因为我对编程很陌生。我正在构建一个Django Web应用程序并使用ExtJS 3.4来构建界面。我的界面的一部分有一个文本字段和按钮,用于触发点击事件,我需要获取文本字段的值以传递给URL,但我不知道如何访问它。我知道如果我将一个对象定义为一个变量,但是当我在这个特定实例中使用xtype时,该怎么做。例如,这就是我的textfield对象的定义方式:

items: [{
  xtype: 'textfield',
  fieldLabel: 'Scenario Name',
  id: 'scn_name',
  allowBlank: false
}]

这就是我尝试在按钮的事件处理程序中访问textfield的值的方法:

var scnName = scn_name.getValue()

我得到的错误是

Uncaught TypeError: Object #<HTMLInputElement> has no method 'getValue'

但我知道textfield类有一个getValue()方法。我究竟做错了什么?如何访问使用类型?

创建的对象的属性和方法

提前致谢,

2 个答案:

答案 0 :(得分:0)

您的scn_name应该引用组件,而不是代表它的DOM元素。您可以使用以下命令获取对ExtJS组件的引用:

var scn_name = Ext.getCmp('scn_name');

然后你可以这样做:

var scnName = scn_name.getValue();

有关详细信息,请参阅:http://www.sencha.com/learn/getting-elements-and-components/

答案 1 :(得分:0)

您何时尝试访问文本字段?它是在一个立即执行的块(Ext.onReady)内还是在一个定义(Ext.define)内?

根据您的代码调用时间,您的组件可能尚未呈现。