JQuery操作Select的Options的Bug(IE8兼容性视图模式)


Posted in Javascript onApril 21, 2013

Bug现场:

JQuery操作Select的Options的Bug(IE8兼容性视图模式)

JQuery操作Select的Options的Bug(IE8兼容性视图模式)

JQuery操作Select的Options的Bug(IE8兼容性视图模式)


通过开发人员工具查看,下拉列表框是有Options的,但你点击选择的时候却什么也不显示。

重现步骤
该问题发生在级联下拉框的情况,第一个列表改变,第二个列表的值跟着改变!
本例中使用以下方法绑定数据:

//绑定下拉框 
//ctnSelector:下拉框ID,带#号, 
//jsonData:JSON数据, 
//txtField:文本字段名称, 
//valField:值字段名称, 
//strOptions:默认填加的项 
function InitSelectOptions(ctnSelector, jsonData, txtField, valField, strOptions) { 
if ($(ctnSelector).length == 0) { return false; }; 
$(ctnSelector).html(''); 
var optList = strOptions; 
if (typeof (jsonData) != undefined) { 
for (var jitem in jsonData) { 
if (jitem == "insertAt" || jitem == "removeAt" || jitem == "moveTo") { 
continue; //解决flareJ.Base.js导致的问题。 
} 
optList += "<option value='" + jsonData[jitem][valField] + "'>" + jsonData[jitem][txtField] + "</option>"; 
} 
} 
$(ctnSelector).html(optList); 
}

正常加载时不会出现任何问题!
但当因第一个下拉框的值改变,而第二个下拉框的选项都被清空了,
然后你还是去点第二个下拉框试图去选择一项后,
再去更改第一个下拉框的选项,
你会发现之前第二个下拉框中显示的与第一个下拉框对应的项却怎么也显示不出来了,
只能显示第一个,或是通过脚本设置为选中的一个!

解决方案
使用DOM的方法去操作Options,代码如下:

//绑定下拉框 
//ctnSelector:下拉框ID,带#号, 
//jsonData:JSON数据, 
//txtField:文本字段名称, 
//valField:值字段名称, 
//strOptions:默认填加的项 
function InitSelectOptions(ctnSelector, jsonData, txtField, valField, strOptions) { 
if ($(ctnSelector).length == 0) { return false; }; 
$(ctnSelector).empty(); 
var sel = $(ctnSelector).get(0); 
var newOpt = $(strOptions); 
var newOption1 = document.createElement("OPTION"); 
newOption1.text = newOpt.text(); 
newOption1.value = newOpt.val(); 
sel.options.add(newOption1); 
if (typeof (jsonData) != undefined) { 
for (var jitem in jsonData) { 
if (jitem == "insertAt" || jitem == "removeAt" || jitem == "moveTo") { 
continue; //解决flareJ.Base.js导致的问题。 
} 
var newOption = document.createElement("OPTION"); 
newOption.text = jsonData[jitem][txtField]; 
newOption.value = jsonData[jitem][valField]; 
sel.options.add(newOption); 
} 
} 
}
Javascript 相关文章推荐
js parsefloat parseint 转换函数
Jan 21 Javascript
jquery $.getJSON()跨域请求
Dec 21 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
Jan 11 Javascript
JS之Date对象和获取系统当前时间详解
Jan 13 Javascript
js打开新窗口方法整理
Feb 17 Javascript
在Google 地图上实现做的标记相连接
Jan 05 Javascript
基于jQuery创建鼠标悬停效果的方法
Mar 07 Javascript
Vue 短信验证码组件开发详解
Feb 14 Javascript
从零开始搭建vue移动端项目到上线的步骤
Oct 15 Javascript
vue头部导航动态点击处理方法
Nov 02 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
May 30 Javascript
JavaScript WeakMap使用详解
Feb 05 Javascript
Jquery submit()无法提交问题
Apr 21 #Javascript
用表格输出1-1000之间的数字实现代码(附特效)
Apr 21 #Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
Apr 20 #Javascript
对jQuery的事件绑定的一些思考(补充)
Apr 20 #Javascript
A标签中通过href和onclick传递的this对象实现思路
Apr 19 #Javascript
javascript中onclick(this)用法介绍
Apr 19 #Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
Apr 19 #Javascript
You might like
php的4种常见运行方式
2015/03/20 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
js url传值中文乱码之解决之道
2009/11/20 Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
2012/05/23 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
jQuery post数据至ashx实例详解
2016/11/18 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
github配置使用指南
2014/11/18 Python
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
Python zip()函数用法实例分析
2018/03/17 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
Django 开发环境与生产环境的区分详解
2019/07/26 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
pytorch 中forward 的用法与解释说明
2021/02/26 Python
Giuseppe Zanotti美国官方网站:将鞋履视为高级时装般精心制作
2018/02/06 全球购物
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
大学生社团活动总结
2014/04/26 职场文书
项目经理任命书范本
2014/06/05 职场文书
大学生自荐材料范文
2014/12/30 职场文书