我试图用组合中的监听器显示/隐藏ext.js(xtype:“compositefield”)。一切都很好,除了复合字段的标签不会隐藏。如何选择整个复合字段DOM元素,以便我可以使用.hide()/。show()?
复合字段的代码:
xtype: 'compositefield',
labelStyle: 'width: 60px',
fieldLabel: 'Player 1',
id: "player_1_fields",
msgTarget: 'under',
items:[
{xtype: 'displayfield', value: 'Name',margins: '3 5 0 22'},
{xtype: 'textfield', name: 'props_name_1', width: 135},
{xtype: 'displayfield', value: 'Score',margins: '3 5 0 0'},
{xtype: 'numberfield', name: 'props_score_n1', width: 35}
]
侦听器的代码:
listeners: {
select: function(combo, record, index) {
if ( combo.getValue() == "2" )
{
Ext.getCmp("player_1_fields").getEl().hide();
}
else
{
Ext.getCmp("player_1_fields").getEl().show();
}
}
}
答案 0 :(得分:2)
试试这段代码:
select: function(combo, record, index) {
if ( combo.getValue() == "2" ) {
Ext.getCmp("player_1_fields").getEl().up('.x-form-composite').hide();
} else {
Ext.getCmp("player_1_fields").getEl().up('.x-form-composite').show();
}
}
Up应该找到具有特定类的父级(并且您希望它是整个表单项的ExtJs类)。