1

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

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

这就是我尝试在按钮的事件处理程序中访问文本字段值的方式:

var scnName = scn_name.getValue()

我得到的错误是

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

但我知道 textfield 类有一个 getValue() 方法。我究竟做错了什么?如何访问使用类型创建的对象的属性和方法?

提前致谢,

4

2 回答 2

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/

于 2013-11-05T12:58:47.023 回答
0

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

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

于 2013-11-05T13:05:13.757 回答