我在字段集、显示和隐藏函数方面有问题。在我的应用程序的左边,我有一个组合框与变化侦听器。在右边,我有几个不同的文本框,它们根据组合框中选定的值显示和隐藏。每个隐藏和显示函数都使用字段集,但是如果我不能显示/隐藏字段集的话。Fieldset引用是可见的,我可以用console.log()函数列出这个组件。
下面是我的一段代码:
var rigthPanelLeftContainer = {
flex: 1,
minWidth: 200,
defaults: {
xtype: 'textfield',
minWidth: 180,
anchor: '100%'
},
items: [
//some working textfields here
{
xtype: 'fieldset',
labelWidth: 160,
anchor: '100%',
height: 40,
itemId: 'remarkId',
title: 'title'],
hidden : !ifHideIt, //boolean
items: [{
xtype: 'text',
height: 25,
text: 'sometext']
}]
}
]};
var comboBoxConnectors = {
xtype: 'combobox',
fieldLabel: Ext.translations.map['field.label.common'],
store: Ext.state.Manager.get('conTypes'),
editable: false,
queryMode: 'local',
name: 'conType',
itemId: 'conTypeField',
value: connObj === null ? conTypes[0] : connObj.type,
labelWidth: 160,
anchor: '100%',
listeners: {
change: function(obj, newValue, oldValue) {
//many hide/show working on textfield functions
var remarkId = me.query('#remarkId');
console.log(remarkId); //returns my fieldset element
remarkId.hide(); //returns remarkId.hide is not a function
}
}
}我真的需要你们的帮助,伙计们,这有什么问题吗?
发布于 2014-10-10 11:40:19
在您的代码中,您有一个注释,它说me.query( '#remarkId‘)返回您的字段集元素。这在技术上是不正确的。假设me.query()是一个组件查询,那么您实际上得到的是一个匹配的组件数组。因此,您将得到未定义的函数错误,因为最明确的是,数组没有隐藏()方法。如果您访问数组中的第一个元素,然后调用hide()方法,那么它应该可以工作。
然而,您可能也应该考虑采取一些不同的做法。您可以使用内置的遍历方法来查找正确的组件,而不是使用query() (可能总是一个,但不一定是.)的元素数组。例如,假设combobox和字段集都是同一个窗体面板的子级,您可以这样做: mycombobox.up( ' form‘).down( 'fieldset#remarkId’)。这基本上指示代码遍历组件层次结构到最近的表单,然后深入到表单的第一个子代,即具有“itemId of”"remarkId“的字段集。因此,这只会给您提供一个组件,因此您不必费心从组件数组中访问组件。
https://stackoverflow.com/questions/26295268
复制相似问题