今天在使用avalon的项目中使用了两个组织关联的select标签html
当选择省份时,自动加载下级城市列表的功能在ie下出现异常。ajax
选择一个省份时,加载的上一个省份的城市列表。基本代码以下:dom
html函数
<select id="proselect" ms-duplex="provienceCode" ms-change="proChange"> <option ms-repeat="provienceList" ms-attr-value="el.code">{{el.name}}</option> </select> <select ms-duplex="cityCode"> <option ms-repeat="cityList" ms-attr-value="el.code">{{el.name}}</option> </select>
jsurl
vm = avalon.define({ $id:"dd", provienceCode:"", cityCode:"", cityList: [], provienceList: [], proChange: function(){ $.ajax({ url: "/dict/" + vm.provienceCode, success: function (data) { console.log(data) //当选择省份列表中的item时,发现这里城市列表获取的是上一个省份的城市列表 vm.cityList = data.data } }) } })
调试发现,在选中item,触发ms-change的函数发送请求时,vm.provienceCode发送的是改变以前的值。而不是改变以后的。spa
在ie下,ms-change会在绑定值改变以前被调用。调试
解决方法:code
给select绑定id值,在js中直接获取该dom的value值,能够正常的处理。htm
1 proChange: function(){ 2 $.ajax({ 3 url: "/dict/" + $("#proselect").val(), 4 success: function (data) { 5 console.log(data) 6 //当选择省份列表中的item时,发现这里城市列表获取的是上一个省份的城市列表 7 vm.cityList = data.data 8 } 9 }) 10 }