仕事で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]チェックボックスのチェックを反転させるボタン