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 相关文章推荐
javascript动画对象支持加速、减速、缓入、缓出的实现代码
Sep 30 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
Dec 17 Javascript
javascript 获取网页标题代码实例
Jan 22 Javascript
For循环中分号隔开的3部分的执行顺序探讨
May 27 Javascript
Node.js开源应用框架HapiJS介绍
Jan 14 Javascript
jQuery源码解读之addClass()方法分析
Feb 20 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
Nov 09 Javascript
jQuery实现ToolTip元素定位显示功能示例
Nov 23 Javascript
JavaScript制作简易计算器(不用eval)
Feb 05 Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
Jul 05 Javascript
vue中的router-view组件的使用教程
Oct 23 Javascript
vue浏览器返回监听的具体步骤
Feb 03 Vue.js
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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
php 读取文件乱码问题
2010/02/20 PHP
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
python实现寻找最长回文子序列的方法
2018/06/02 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
python中的colorlog库使用详解
2019/07/05 Python
Python适配器模式代码实现解析
2019/08/02 Python
python字符串的拼接方法总结
2019/11/18 Python
Python实现图片识别加翻译功能
2019/12/26 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
个性车贴标语
2014/06/24 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
基层工作经验证明样本
2014/11/16 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书
Flask response响应的具体使用
2021/07/15 Python
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python