因代码有跟服务器交互取数据,所以,不好整理,我先说下我想实现的功能,后面看下各位能否理解,不好理解我再整理下代理贴上来吧。
我就是想用combobox实现一个简单的二级联动的下拉框功能,比如,就省份与城市,当我第一个下拉框选择一个省份时,
第二个下拉框更新其对应的城市,这个应该好理解。
我是在select事件中触发,当我选择省份时,取到其对应的省份编号,再通过省份编号用DirectStore到后台取store的值(取值完全没问题),再把store的值赋值城市对应的下拉框的store,再load下理论上就更新了城市的选择框。
思路应该没问题,其实我刚进入这个操作界面时,这个功能是正常的,但奇怪的是,只限于第一次选择,我第二次再选择省份时,这时,换了个省份,却发现,城市的下拉框不再更新了!即还是之前的那个省份对应的城市!真是太离奇了啊,代码也实在看不出问题。
后来,我又发现了一个规律,其实,如果第一次进入时操作界面时,我先去点那个城市的下拉框,随便点一下,就会造成,选择省份时,无效了!即只能城市的下拉框你选择过后,后面,选择省份就永远不能更新城市下拉框的值了。
我不知道各位高人能否看得懂我说的意思,这到底是什么原因呢?百思不得其解,有人遇到类似奇怪的问题吗?
说得有点多了,我看下,代码能不能大概整理下,贴上来吧。
我就是想用combobox实现一个简单的二级联动的下拉框功能,比如,就省份与城市,当我第一个下拉框选择一个省份时,
第二个下拉框更新其对应的城市,这个应该好理解。
我是在select事件中触发,当我选择省份时,取到其对应的省份编号,再通过省份编号用DirectStore到后台取store的值(取值完全没问题),再把store的值赋值城市对应的下拉框的store,再load下理论上就更新了城市的选择框。
思路应该没问题,其实我刚进入这个操作界面时,这个功能是正常的,但奇怪的是,只限于第一次选择,我第二次再选择省份时,这时,换了个省份,却发现,城市的下拉框不再更新了!即还是之前的那个省份对应的城市!真是太离奇了啊,代码也实在看不出问题。
后来,我又发现了一个规律,其实,如果第一次进入时操作界面时,我先去点那个城市的下拉框,随便点一下,就会造成,选择省份时,无效了!即只能城市的下拉框你选择过后,后面,选择省份就永远不能更新城市下拉框的值了。
我不知道各位高人能否看得懂我说的意思,这到底是什么原因呢?百思不得其解,有人遇到类似奇怪的问题吗?
说得有点多了,我看下,代码能不能大概整理下,贴上来吧。
解决方案 »
- 打开select下拉列表的事件是什么
- js如何使用快捷键或者自定义快捷键
- 看不出什么意思,也没查出资料来,帮下忙
- 提交后密码框内的内容不消失,有办法吗?
- 帮忙改个代码吧 ie 与ff下显示不一样!
- 本页提交时,会出现两次同样的提示,问题出在哪里,请帮帮忙
- 怎样让textarea随着表格长宽自动变化?
- 网页上链接的word文档怎样单击一下,开始下载到本地,完成后用word打开?
- window.open()的超级问题,多次用window.open()竟出现多个窗口,所有个参数一样
- fullpage.js不使用鼠标滚动,但导航依然有效的方法
- 在Link上POPUP出目标页面
- 急急急 extjs中文url中文参数乱码
再一个区别是,他是ext2.0或3.0的,我用的是4.0的,下面, 我贴出主要代码吧 defaults: {xtype: "textfield", allowBlank: true, border: false, width: 182, labelWidth: 55},
layout: "anchor",
baseCls: "ex-panel", width: 217,
items:
[ {
xtype: "combobox",
fieldLabel: "省份",
name: "userProvince",
emptyText: "请选择省份",
store: provinceStore,
queryMode: "local",
displayField: "provinceName",
valueField: "provinceNo",
triggerAction: "all",
listeners:
{
select: function(field, value, options)
{
var provinceNo = value[0].raw.provinceNo;
cityStore = new App.MyDirectStore(provinceNo);//App.MyDirectStore为自定义的类,这里,类似这样的做法,经验证,能取得到cityStore的值
var userCityCombo = Ext.getCmp("userCity");
userCityCombo.setRawValue("");
userCityCombo.setValue(""); userCityCombo.store = cityStore;
userCityCombo.store.load();
}
}
},
{
xtype: "combobox",
fieldLabel: "城市",
name: "userCity",
id: "userCity",
emptyText: "请选择城市",
store: cityStore,
queryMode: "local",
displayField : "cityName",
valueField: "cityNo",
triggerAction: "all"
}
]这两个省份与城市,是属于form里面的两个textfield
这里,之所以觉得奇怪,是因为,只要点了城市的,就无效了,第一次先点省份时,城市有效,此时,点了下城市的,再去点省份就无效了,如果是store有问题,没取到值,那第一次,也不应该取到值啊,怪就怪在这里
看了楼主代码 如果楼主确定App.MyDirectStore 这个能返回正确的store的话 我一时也还真没发现有哪不顺眼
还有其他地方处理了这两个下拉框么 ?
4楼说的城市也要加监听是不对的,是省份控制城市,而不是城市控制省份,所以城市那里不用加监听
5楼,我store数据加载之前就已经读出来了
关于这个问题,我估计,十之八九是bug的了,没办法,4.0刚出来不久,问题很多,也不奇怪。