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代码
Nov 23 Javascript
JS动态添加与删除select中的Option对象(示例代码)
Dec 25 Javascript
JavaScript模拟实现继承的方法
Mar 30 Javascript
JS实现定时自动关闭DIV层提示框的方法
May 11 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
Dec 18 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
Jul 20 Javascript
简单谈谈gulp-changed插件
Feb 21 Javascript
vue使用自定义icon图标的方法
May 14 Javascript
微信小程序实现循环动画效果
Jul 16 Javascript
浅谈微信页面入口文件被缓存解决方案
Sep 29 Javascript
Vue表单控件数据绑定方法详解
Feb 05 Javascript
解决vue组件销毁之后计时器继续执行的问题
Jul 21 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中的output_buffering详细介绍
2014/09/27 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
php获得文件夹下所有文件的递归算法的简单实例
2016/11/01 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
thinkPHP通用控制器实现方法示例
2017/11/23 PHP
yii2安装详细流程
2018/05/23 PHP
jquery 学习之二 属性(类)
2010/11/25 Javascript
jquery实现用户信息修改验证输入方法汇总
2015/07/18 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
nodejs的HTML分析利器node-jquery用法浅析
2016/11/08 NodeJs
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
浅谈Python 对象内存占用
2016/07/15 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
2019/09/26 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
Tensorflow实现多GPU并行方式
2020/02/03 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
wordpress添加Html5的表单验证required方法小结
2020/08/18 HTML / CSS
企业门卫岗位职责
2013/12/12 职场文书
安全生产中长期规划实施方案
2014/02/21 职场文书
委托书范文
2014/04/02 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
售后客服个人自我评价
2014/09/14 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL