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 相关文章推荐
nicejforms——美化表单不用愁
Feb 20 Javascript
use jscript List Installed Software
Jun 11 Javascript
JavaScript 组件之旅(三):用 Ant 构建组件
Oct 28 Javascript
对xmlHttp对象的理解
Jan 17 Javascript
jquery easyui使用心得
Jul 07 Javascript
微信小程序 在线支付功能的实现
Mar 14 Javascript
bootstrap table动态加载数据示例代码
Mar 25 Javascript
jQuery EasyUI window窗口使用实例代码
Dec 25 jQuery
解决Webpack 热部署检测不到文件变化的问题
Feb 22 Javascript
教你搭建按需加载的Vue组件库(小结)
Jul 29 Javascript
Vue前端项目部署IIS的实现
Jan 06 Javascript
vant picker+popup 自定义三级联动案例
Nov 04 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
Terran魔法科技
2020/03/14 星际争霸
php网站来路获取代码(针对搜索引擎)
2010/06/08 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
2014/06/25 PHP
php通过记录IP来防止表单重复提交方法分析
2014/12/16 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
深入理解PHP变量的值类型和引用类型
2015/10/21 PHP
Use Word to Search for Files
2007/06/15 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
广州某公司软件工程师面试题
2014/12/22 面试题
移动通信行业实习自我鉴定
2013/09/28 职场文书
毕业生优秀推荐信
2013/11/26 职场文书
培训通知书模板
2015/04/17 职场文书
结婚典礼致辞
2015/07/28 职场文书
新郎结婚感言
2015/07/31 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
MySQL基础(一)
2021/04/05 MySQL