<dd><input type="checkbox" id="star5" name="checkbox" value="5" /><label for="star5" title="五星">五星</label></dd>应该是:<dd><label for="star5" title="五星"><input type="checkbox" id="star5" name="checkbox" value="5" />五星</label></dd>吧?
还有真看不懂你的目的。
至于执行两次原因是<label>与包含的<input>有联动关系,你可简单测试一下:
<label onclick="alert(0)"><input type="checkbox" name="tt" value="1" />点一下执行两次onclick</label>

解决方案 »

  1.   

    用alert进行一步步调试,看看那里是触发的。然后再排除,是否条件除了问题
      

  2.   

    应为input是包含在label里面的   input会触发一次 label也会触发一次     $("input").change(function(){})
      

  3.   

    首先,你的dom结构很不好。<label>与<input>不是嵌套来使用的。
    正确的用法是<label for="a">文字</label><input id="a" type="radio">
    通过<label>的for属性让label与<input>绑定起来,作用是点击<label>中的文字,<input>也能选中。建议修改一下。