省、市、县三级联动+回填数据,功能很简单,看代码片段: // 省级 var gradeStore = new Ext.data.Store({ autoLoad : true, listeners :{ load:function(){ form_T_RESOURCE.form.findField('provinceCode').setValue('$!form.provinceCode'); } }, proxy : new Ext.data.HttpProxy({ url : 'resourceAction!getProvince.action' }), storeId : 'gradeStore', reader : new Ext.data.JsonReader({ root : 'root', fields : ["code", "id", "name"] }), remoteSort : true }); // 市级 var cs_store = new Ext.data.Store({ autoLoad : true, listeners :{ load:function(){ if(cs_store.find('code', '$!form.cityCode') > -1) { form_T_RESOURCE.form.findField('cityCode').setValue('$!form.cityCode'); } } }, proxy : new Ext.data.HttpProxy({ url : 'resourceAction!getCity.action?p=$!form.provinceCode' }), storeId : 'cs_store', reader : new Ext.data.JsonReader({ root : 'root', fields : ["code", "id", "name"] }), remoteSort : true }); // 县级 var x_store = new Ext.data.Store({ autoLoad : true, listeners :{ load:function(){ if(x_store.find('code', '$!form.countyCode') > -1) { form_T_RESOURCE.form.findField('countyCode').setValue('$!form.countyCode'); } } }, proxy : new Ext.data.HttpProxy({ url : 'resourceAction!getCounty.action?p=$!form.provinceCode&c=$!form.cityCode' }), storeId : 'x_store', reader : new Ext.data.JsonReader({ root : 'root', fields : ["code", "id", "name"] }), remoteSort : true }); var proCombo = new Ext.form.ComboBox({ hiddenName : 'provinceCode', editable : false, displayField : 'name', valueField : 'code', triggerAction : 'all', store : gradeStore, mode : 'remote', name : 'provinceCode', width : 100, height : 7, emptyText : '全部', listeners : { select : function(combo, record, index) { cityComb.clearValue(); countComb.clearValue(); cs_store.proxy = new Ext.data.HttpProxy({ url : 'resourceAction!getCity.action?p=' + combo.value }); cs_store.load(); } }, lazyInit : false }); var cityComb = new Ext.form.ComboBox({ hiddenName : 'cityCode', editable : false, displayField : 'name', valueField : 'code', triggerAction : 'all', store : cs_store, mode : 'remote', name : 'cityCode', height : 7, width : 100, emptyText : '全部', listeners : { select : function(combo, record, index) { countComb.clearValue(); x_store.proxy = new Ext.data.HttpProxy({ url : 'resourceAction!getCounty.action?p='+proCombo.getValue()+'&c=' + combo.value }); x_store.load(); } }, lazyInit : false }); var countComb = new Ext.form.ComboBox({ hiddenName : 'countyCode', editable : false, displayField : 'name', valueField : 'code', triggerAction : 'all', store : x_store, mode : 'remote', name : 'countyCode', width : 100, height : 26, emptyText : '全部', lazyInit : false });