我試圖選擇位於面板中的多個對象(2個標籤& 2 textfields)。我給了這些組件一個屬性(changeVisibility:true)。Extjs 4中的組件選擇器
所以我在這裏試圖完成的事情非常簡單:當用戶選中複選框時,具有屬性(changeVisibility:true)的所有組件都應該變爲不可見。所以在我的控制器中,我試圖選擇這些組件,但我無法完成這個目標。
非常感謝幫助!我的面板
代碼:
Ext.define('Edocs.view.wizard.card-2.content.mobile-password.Panel', {
extend : 'Ext.FormPanel',
alias : 'widget.mobilePassword',
layout : {
type : 'vbox',
pack: 'center'
},
bodyStyle:{"background-color":"beige"},
border:false,
defaults:{
width: '100%'
},
items: [{
xtype : 'checkboxfield',
boxLabel : 'Enable mobile (iphone) accesibility',
boxLabelAlign : 'before',
name : 'enableMobile',
inputValue : '1',
id : 'cbxMobile',
itemId : 'cbxMobile'
},{
xtype: 'label',
text: "Please enter a password to connect to the platform by mobile (iphone/ipad)",
style: 'font-weight:bold;',
changeVisibility :true
},{
xtype: 'textfield',
name: 'mobilePassword',
id: 'txtMobilePassword',
inputType: 'password' ,
changeVisibility :true
//width: '100%'
},{
xtype: 'label',
text: "Confirm password",
style: 'font-weight:bold;',
changeVisibility :true
},
{
xtype: 'textfield',
name: 'mobilePasswordConfirm',
itemId: 'txtMobilePasswordConfirm',
inputType: 'password' ,
vtype: 'password',
initialPassField: 'txtMobilePassword',
changeVisibility :true
}],
initComponent : function() {
Ext.apply(this, {})
this.callParent(arguments);
}
});
這是在我的控制器功能(該功能被稱爲上的複選框的更改事件):我遇到麻煩
addMobilePassword : function(checkbox) {
var items = checkbox.up().down('mobilePassword[changeVisibility=true]');
if (checkbox.checked){
for (var i in items){
items[i].setVisible(false);
}
}
}
這個選擇器:
var items = checkbox.up().down('mobilePassword[changeVisibility=true]');
如果任何人都可以給我一些關於如何選擇的建議e組件。
謝謝!
你試過[checkbox.up().query( 'mobilePassword [changeVisibility =真]')](HTTP://文檔.sencha.com/EXT-JS/4-0 /#!/ API/Ext.container.AbstractContainer法查詢)? – 2012-04-25 08:47:23
剛剛嘗試過,並沒有工作... – Fbo 2012-04-25 08:55:24
我知道,如果組件只會是標籤,這應該工作:var items = checkbox.up()。down('label [changeVisibility = true]'); – Fbo 2012-04-25 08:58:25