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!
Code Javascript :
var codePostal = new Ext.form.ComboBox({
fieldLabel:'<b>Code Postal</b>'
,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: '<b>:</b>'
,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:'<b>Ville</b>'
,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: '<b>:</b>'
,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())%>'
});