これまでjQueryを用いたcheckboxのcheck/uncheckは下記のようにしていました。
checkbox.attr(‘checked’, ‘checked’)
checkbox.removeAttr(‘checked’)
しかし、どういうわけかコレが効かなくなる場合がありました。
同様にハマッているひとがいまして、こちらの記事で無事に解決させていただきました。
http://stackoverflow.com/questions/14769408/jquery-checkbox-check-uncheck
checkbox.prop(‘checked’, true)
checkbox.prop(‘checked’, false)
確かにこちらの方がしっくり来ます。ちなみにcheckboxがcheckであるかどうかは
checkbox.attr(‘checked’) == ‘checked’ でなく
checkbox.is(‘:checked’) とするのが良いようです。
jQuery1.6あたりでそれまでattrがattrとpropに分かれたようです。
その辺の情報は下記のリンクまで。