1

パネルにある複数のオブジェクト(2つのラベルと2つのテキストフィールド)を選択しようとしています。これらのコンポーネントにプロパティを指定しました(changeVisibility:true)。

したがって、ここで達成しようとしていることは非常に単純です。ユーザーがチェックボックスをオンにすると、プロパティ(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]');

誰かがこれらのコンポーネントを選択する方法について私にいくつかのアドバイスを与えることができれば。

ありがとう!

4

2 に答える 2

4

down()コンテナの最初に一致した子孫を検索します。だから私はあなたが試してみるべきだと思います:

checkbox.up().down('mobilePassword').query('label[changeVisibility], textfield[changeVisibility]')

または簡単に

checkbox.up().query('label[changeVisibility], textfield[changeVisibility]')
于 2012-04-25T20:05:41.687 に答える
0

試すquery('[changeVisibility=true]')

于 2012-04-25T10:20:00.390 に答える