修改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>