解决jquery下checked取值问题...
修改checkbox时..jquery在取checked值时总是出这样那样的问题....各个版本之间还有少许的差异....当向后台发送数据后,,再返回到当前页时..checked的状态始终不对...
一怒之下,给checkbox加一个isCheck,,不用那该死的checked属性...一切OK了...代码如下:
<!DOCTYPE html > <html><head> <meta charset="UTF-8"> <title>修复checkbox的状态切换和动态取值的问题</title> <script type="text/javascript" src="jquery.js"></script> <style> * {margin:0; padding:0;} ul li { float:left; list-style:none; margin-left:20px;} </style> </head> <body> <form name="journal" id="journal" action="#" method="post"> <input name="cate_ids" value="" type="hidden"> <ul> <li><input checked="checked" isCheck="true" class="ckbox" value="1" name="cate_id" type="checkbox">美食1</li> <li><input class="ckbox" value="2" name="cate_id" type="checkbox">美食2</li> <li><input class="ckbox" value="3" name="cate_id" type="checkbox">美食3</li> <li><input checked="checked" isCheck="true" class="ckbox" value="4" name="cate_id" type="checkbox">美食4</li> <li><input checked="checked" isCheck="true" class="ckbox" checked="checked" value="5" name="cate_id" type="checkbox">美食5</li> </ul> <div class="btn"> <input value="确认" name="sbtn" onclick="getValues()" type="button"> </form> <script> //修复checkbox的状态切换和动态取值的问题 //为checkbox新增一个isCheck属性来替换checked属性的不兼容性 $(".ckbox").click(function(){ if($(this).attr("isCheck") == "true") { $(this).removeAttr("isCheck") } else { $(this).attr("isCheck", "true"); } }) function getValues() { var list=""; $(".ckbox").each(function(){ if($(this).attr("isCheck") == "true"){ list += $(this).val() + ","; } }) alert(list); } </script> </body> </html>