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>