博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IE9 UpdatePanel出错问题
阅读量:6000 次
发布时间:2019-06-20

本文共 817 字,大约阅读时间需要 2 分钟。

图省事经常用UpdatePanel与处理ajax,最近发现在IE9的某些版本下会出现脚本错误,而且都是在UpdatePanel内有DropDownList控件的情况下才出问题。

目前发现9.0.8112.16421版都有此问题,9.0.8080.16413版部分机器有此问题。

调试了一下脚本,发现问题出在DropDownList控件无法重建,因为回传的表单中此控件的value为空。我们知道DropDownList控件表现到客户端HTML中就是标准的select标签,它的value就是当前选中option的value,进而跟踪发现DOM中所有option元素的value属性都为undefined,但是其attributes集合中记录的value却是有值的,比较奇怪,这个问题在其它浏览器中包括IE9之前的浏览器中都不存在。

解决思路是替IE9把这些option的value都赋上值,代码也比较简单,页面加载的时候修正一下就可以了:

 
  1. function fixDropdown() { 
  2.     var options = document.getElementsByTagName("option"), i = 0; 
  3.     for (; i < options.length; ++i) {  //注意不能用 for(var i in options) 的写法 
  4.         options[i].value = options[i].attributes["value"].nodeValue; 
  5.     } 

以上代码是用原生javascript写的,换jquery会更简洁:

 
  1. function fixDropdown() { 
  2.     $("option").each(function(){ 
  3.         $(this).val($(this).attr("value") || $(this).context.attributes["value"].nodeValue); 
  4.     }); 

 

 

 

转载地址:http://jpwmx.baihongyu.com/

你可能感兴趣的文章
作业2
查看>>
VC++中的 _T("") 与 L""
查看>>
ps人物像发丝的抠图处理
查看>>
基于WSGI封装一个简单WEB框架
查看>>
R中的一些基础1106
查看>>
vue生命周期
查看>>
sql统计总和和各状态数
查看>>
oracle向in语句传入参数查不出数据
查看>>
UML类图学习
查看>>
leetcode203
查看>>
leetcode160
查看>>
小程序数据绑定点赞效果切换(交流QQ群:604788754)
查看>>
mysql常用命令
查看>>
React Native 在用户网络故障时自动调取缓存
查看>>
uiwebview与objective-c
查看>>
个人总结07
查看>>
YII框架yiic、gii工具使用方法
查看>>
设计模式-代理模式
查看>>
dic or uilocalnotification,
查看>>
Unity_UIWidgets学习笔记02_轮播图实现
查看>>