jQuery 1.3.2 IE8 獲取Radio 問題

发现jquery 1.3.2在IE8中的一点点的小问题

最近的项目中开始使用了新版本的jquery,就是1.3.2版,发现在这个在版本对就radio类型的input在IE8中的支持不太好,使用的时候是这个样子的:

 

Javascript代码 复制代码
  1. var _val = $("input[name='input1'][checked]").val();  

 

结果发现_val的值为undefined,开始还以为写的不对,可检查没有问题,这样写在IE6、7、FF、Chrome、Opera、Safari中都可以正常的得到值,就是在IE8中不行。百思不得其解,后来又实验:

 

Javascript代码 复制代码
  1. var _val = $("input[name='input1']").eq(0).val();  

 

可以得到值,说明问题可能出现在radio的checked属性上,再实验:

 

Javascript代码 复制代码
  1. var _val = document.getElementsByName("input1")[0].getAttribute("checked");  

 

在IE6、7、FF、Chrome、Opera、Safari中的值为true或false,而在IE8中为空,

在IE8中:

 

Javascript代码 复制代码
  1. var _val = document.getElementsByName("input1")[0].checked;  

 

可以行到true或false的值,不知道这是IE8的bug还是微软另有深意呢?

最后使用:

 

Javascript代码 复制代码
  1. var _val = $(":radio[name='input1'][checked]").val();  
posted @ 2010-01-11 11:06  ggbbeyou  阅读(809)  评论(0编辑  收藏  举报