Enabled/desable ComboBox en cascade

astn Messages postés 3 Date d'inscription vendredi 29 octobre 2010 Statut Membre Dernière intervention 1 juin 2011 - 1 juin 2011 à 11:44
astn Messages postés 3 Date d'inscription vendredi 29 octobre 2010 Statut Membre Dernière intervention 1 juin 2011 - 1 juin 2011 à 20:55
Bonjour à tous!
Je cherche à réaliser la chose suivante pour optimiser la saisie CP + Ville dans un formulaire :
1 - Une ComboBox (Mère) pour le code postal
2 - Une ComboBox (Fille et désactivée par défaut) qui sort la liste des villes correspondantes au code postal tapé.

Action :
Dès que le CP est sélectionné, la ComboBox s’active et se charge :l’utilisateur peut alors sélectionner la ville.


Voici où j’en suis...il me manque la condition disable/enable que je n’arrive pas à intégrer.
Quelqu’un pourrait-il m’apporter une petite aide ? :)

Merci!

var codePostal =  new Ext.form.ComboBox({
fieldLabel:' Code Postal ' 
,name: 'adresseCodePostal'
,hiddenName: 'adresseCodePostal'
,displayField:'ville_cp' 
,valueField:'ville_cp' 
,store:new Ext.data.SimpleStore({
                             fields:['ville_cp']
                            ,data:Ext.exampledata.codePostal
                        })
    
    ,triggerAction:'all' 
,mode:'local' 
,lastQuery:''
,listeners:{

'keyup' : function(c, evt){
if(this.getValue().length > 5){
this.setValue(this.getValue().substring(0, 5));
}
},                        
                   
select:{fn:function(combo, value) {
                            var comboCity  = Ext.getCmp('combo-city');        
                            comboCity.clearValue();
                            comboCity.store.filter('ville_cp', combo.getValue());
                            }}
     
     }

    
,labelSeparator: ':'
,xtype:'combo' 
,editable:true
,width: 200
,allowBlank:false
,value: '<%= u.getAdresse().getCodePostal() %>'
,blankText: 'Votre code postal est obligatoire'
,emptyText:'Taper votre Code Postal'
,style: 'border: 0px;'

});

var adressVille = new Ext.form.ComboBox({
fieldLabel:' Ville '
,displayField:'ville_nom'
,name: 'adresseVille'
,valueField:'ville_id'
,id:'combo-city'
,store:new Ext.data.SimpleStore({
           fields:['ville_id', 'ville_nom', 'ville_cp', '']
           ,data:Ext.exampledata.city
           })
    ,triggerAction:'all' 
,mode:'local' 
,lastQuery:''
,labelSeparator: ':'
,xtype:'combo'
,editable:false
,width: 200
,allowBlank:false
,blankText: 'Votre ville est obligatoire'
,emptyText:'Choisir votre ville'
,style: 'border: 0px;'
,value: '<% =StringEscapeUtils.escapeJavaScript(u.getAdresse().getVille())%>'


});

2 réponses

smathis Messages postés 153 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 17 juin 2011 5
1 juin 2011 à 15:51
La condition ? C'est à dire le moment où changer ? onChange sur la liste déroulante non ?
0
astn Messages postés 3 Date d'inscription vendredi 29 octobre 2010 Statut Membre Dernière intervention 1 juin 2011
1 juin 2011 à 20:55
Pour être plus clair, dès qu'un code postal est sélectionné dans la comboBox "codePostal", il faut rendre actif (disable = false) la comboBox "adresseVille". Tant qu'il n'y a pas de valeur "adresseVille" reste disable = true
0
Rejoignez-nous