Extjs Formulaire dynamiquement montré/caché champs combo de sélection
À l'aide Ext 4.1 j'aimerais créer un formulaire avec une sélection de combo, et en fonction de l'option actuellement sélectionnée différents sous-champs serait montré/caché. L'exemple ci-dessous :
Droit maintenant, j'ai un combo et un ensemble de deux champs de date qui sont cachés sur le rendu. Lorsqu'un combo valeur est modifiée, j'ai un écouteur d'événement qui va afficher ces champs. Mais je ne suis pas sûr si c'est la meilleure méthode pour y remédier. Serait un fieldset fonctionnent mieux dans ce cas ?
Ext.define('TooltipForm', {
extend: 'Ext.form.Panel',
layout: {
type: 'vbox',
align: 'stretch'
},
border: false,
bodyPadding: 10,
initComponent: function(){
this.on('afterrender', this.onAfterRender, this);
this.callParent(arguments);
},
onAfterRender: function(){
this.items.each(function(item){
item.on('change', this.onChange, this);
}, this);
},
onChange: function(field, newValue){
if (field.name === 'range'){
switch(newValue){
case 'fit':
console.log('fit view');
break;
case 'complete':
console.log('complete view');
break;
case 'date range':
console.log('date range view');
break;
}
}
},
fieldDefaults: {
labelAlign: 'top',
labelWidth: 100,
labelStyle: 'font-weight:bold'
},
items: [
{
width: 50,
xtype: 'combo',
mode: 'local',
value: 'fit',
triggerAction: 'all',
forceSelection: true,
editable: false,
fieldLabel: me.rangeFieldLabel,
name: 'range',
queryMode: 'local',
store: ['fit', 'complete', 'date range']
},
{
width:50,
xtype: 'datefield',
fieldLabel: 'date from',
name: 'datefrom',
hidden: true
},
{
width:50,
xtype: 'datefield',
fieldLabel: 'date to',
name: 'dateto',
hidden:true,
}
]
});
OriginalL'auteur owca | 2012-06-18
Vous devez vous connecter pour publier un commentaire.
Quelque chose le long de ces lignes:
La désactivation du champ de l'empêcher de validation.
Je suis surpris de la poste ne prend pas en charge via la propriété hidden. Idéalement, le cadre doit prendre la responsabilité de faire de telles choses
OriginalL'auteur Evan Trimboli