日期:2014-05-16  浏览次数:20363 次

radio标签在不同浏览器中Jquery获取值的兼容性问题
最近做个网页,使用Jquery获取选择radio的值.html代码
HTML code

<input name="allow" type="radio" value="0" checked="checked" onclick="rClick()"/>未审核
<input name="allow" type="radio" value="1" onclick="rClick()"/>已审核


JScript code

//jQuery JavaScript Library v1.4.1
function rClick(){
   alert($("input[name='allow'][checked]").val());
}


在不同浏览器中,测试IE8,firefox. rClick()获取的值都是 0;
而IE7内核中,能比较完美的获得0或1.
(为什么说比较完美呢? 测试时发现多数概率能获得当前触发click事件radio的值.但有时候取得的值却并不准确;
出现这个问题,如下我的揣测:如点击value="1"的radio触发click事件后,需要一定的时间去处理以下逻辑:[
取消value="0"的radio的checked属性,并给value="1"的radio赋予checked属性,再Jquery根据xpath获得值]
)(当然我的测试很不严格,大家可以去试试.)

为了能严格的获得有状态的事件控件参数,推荐大家rClick(this)方法.直接取得值,保险点.


------解决方案--------------------
<script>
$(function () {
$("input[type=radio]").click(function () {
alert($("input[name='allow']:checked").val());
});
})
</script>
测试一下这个
------解决方案--------------------
//这个代码就很好用了!一般都这么获取的

HTML code

<input name="allow" type="radio" value="0"  />未审核
<input name="allow" type="radio" value="1" />已审核

    <script type="text/javascript">
        
        jQuery('input[type=radio]').click(function(){
                alert(jQuery(this).val());
            }
        );
    </script>