选择字段集的子元素

时间:2013-07-19 17:43:55

标签: javascript extjs

假设我有一个示例字段集如下:

+---| Customer Types | --------------------------+
|                                                |
|   +----------+    +----------+   +---------+   |
|   |  Trader  |    |  Horeca  |   |   SCO   |   |
|   +----------+    +----------+   +---------+   |
|                                                |
+------------------------------------------------+

字段集有三个按钮,用于打开一个新窗口。当员工单击其中一个按钮时,他/她应该填写一些必要的字段。填写表格后,他/她将点击帖子记录的submit按钮。到目前为止没有问题。

我想做什么,员工填写表格并点击打开窗口的submit按钮,我应该禁用其他按钮以防止双重记录。

以下是问题:

  • ExtJS中是否有任何方法可以选择字段集的子元素?
  • 或者,您是否有任何建议/示例代码来选择子元素以禁用我在上面指定的那些按钮?

2 个答案:

答案 0 :(得分:1)

您需要使用Ext.ComponentQuery。如果您使用down()up()query()方法,则内置于每个组件。

为了得到你想要的东西,做一下这样的事情:

var buttons = myFieldSet.query('button');
for (var i=0; i<buttons.length; i++)
    buttons[i].disable();

点击此处的文档了解详情:http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.ComponentQuery

答案 1 :(得分:1)

ExtJS提供了一个ComponentQuery类,可让您在页面的任何位置找到任何组件。另外,为了方便容器组件添加了一些CQ方法,例如down()方法。使用它,您可以找到字段集中包含的组件。您可以按xtype,itemId或组件的任意属性进行搜索。

For Components:
    • Ext.getCmp(id)
    • Ext.ComponentQuery.query()
    • up() 
    • down() 
    • nextSibling() 
    • previousSibling()
    • child()
    • previousNode()
plus various find.. Methods

For Elements:
    • Ext.get()
    • Ext.dom.Query() (more on DOM Query http://docs.sencha.com/core/manual/content/domquery.html