仕事でcheckboxの値を復元する必要があったのでjQueryでやってみた。
とりあえずコード
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> $(function(){ var tags = ['1', '2', '3']; // 復元する値の例 $('#main :checkbox').each(function(){ if($.inArray($(this).val(), tags) > -1){ $(this).attr("checked", "checked"); } }); }); </script>
HTML部分(大体こんな感じ)
<div id="main"> <input type="checkbox" name="sample" value="1" />hoge <input type="checkbox" name="sample" value="2" />moge <input type="checkbox" name="sample" value="3" />fuga <input type="checkbox" name="sample" value="4" />fuzz <input type="checkbox" name="sample" value="5" />buzz </div>
この場合だと「hoge」、「moge」、「fuga」にチェックが入る想定。
$(‘#main :checkbox’)でcheckboxをさらって一つずつeachで処理。
その際順番に処理されるcheckboxの値がtags配列(復元対象)中に
あるかどうかを$.inArray($(this).val(), tags)でチェックし、「-1」(存在しない)
以外であれば復元するという感じ。
とりあえずできたけどこれがいいのかどうか・・・。
参考URL
■[jquery]チェックボックスのチェックを反転させるボタン