jQuery问题 求解!

radio单击事件能设置checked属性为true
但是siblings().checked=false无效,导致radio多选

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
<script src="http://misc.360buyimg.com/lib/js/e/jquery-1.2.6.pack.js"></script>
 </head>

 <body>
<input type="radio" name='radsex' value="男" />男
<input type="radio" name='radsex' value="女" />女
<input type="radio" name='radsex' value="保密" />保密
<input type="hidden" value="" id="radioMark" name="radioVal" />

<script type="text/javascript">
$("input[name='radsex']").click(function(){
var val = this.value;
$("#radioMark").val(val);
});
</script>
 </body>
</html>

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-20

    $(this)是jquery对象,你直接.checked是元素js对象的属性,错误

    attr属于低版本的bug级别方法,论兼容性得用prop

    直接true就好

    type='radio',严格加引号

    既然用来jquery,就不要用原始获取元素的方法了getElementbyId

    其他还不知道,因为只粘贴了个图片,

第2个回答  推荐于2016-11-24
把三个radio的name属性设置成同一个值,<input type="radio" name="gender" ..>..
去掉siblings().checked=false试试。本回答被提问者采纳
第3个回答  2014-05-20
楼主什么问题,说明一下啊~追问

远程帮我看看吧

追答

找到问题了,lz,你的层级选择错误。

1.首先你每个radio外面有个label的父元素
2.你$(this).siblings()的时候是选不到别的radio的
3.应该是$(this).parent().siblings("label").children("input").attr("checked",false);
现在应该明白了吧

第4个回答  2014-05-20
写的乱七八糟的,都不知道你要问什么。
相似回答