配列に格納された値に従ってチェックボックスを設定するためのスクリプトに取り組んでいます (ユーザーがフォームを初期値に戻すためのより大きなスクリプトの一部)。コードは基本的に次のとおりです。
$("#myForm :checkbox[name='myName[]']").each(function(){
if($.inArray($(this).val(),initValues)!=-1){
$(this).prop("checked",true);
} else {
$(this).prop("checked",false);
}
});
initValues には、最初にチェックされたボックスの値属性が含まれています。
スクリプトは最初の要素をチェックします$("#myForm :checkbox[name='myName[]']")
が、後続の要素はすべてチェックされていないように見えます。Firebug は、checked
属性が変更されていることを示していますが、ボックス自体はオフになっています。
attr()
in place of allのさまざまな順列を試してみましprop()
たが、結果は同じでした。スクリプトは、OS X の Firefox 11.0 と Chrome 18.0 で同じように動作します。