日期:2014-05-16  浏览次数:20398 次

Jquery 控制 checkbox的奇怪问题。
<label> <input type="checkbox" value="0"> item 1</label>
在不使用JS 控制时,点击label 或 input 页面都能得到正确的显示 checkbox状态【勾选/取消勾选】
但是使用了以下代码控制时就出现问题了
$("label").toggle(
  function(){ alert('a'); $("input").attr("checked",true); },
  function(){ alert('b'); $("input").attr("checked",false); }
);

状况如下
  点击label范围,页面显示的checkbox状态是正确的。
  点击 <input type="checkbox" value="0">,输出的alert 是正确的,但复选框却始终不显示勾选的状态。
这是怎么回事?

------解决方案--------------------
举个 例子吧: <input type='checkbox' id='chkAll' ><label for='chkAll'>全选</label> 这样就达到你要的效果了吧、 label 要设置 for 属性 指向你要的 checkbox ID
------解决方案--------------------
<label>item 1</label><input type="checkbox" value="0"/> label写在input之前就行了