jquery下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>