- ベストアンサー
サブルーチンへの引数
フォーム内のチェックボックスすべてを一括でチェックする関数を作成しています。 JavaScript関数を呼び出す際の引数の受け渡し方について質問です。 以下のようなソースで、関数を呼び出した場合、 alert(frmName)の時には"xxxxx"と表示されますが、 document.frmName.elements[i].checked = true; の時には、変数展開されずに、"frmName"として処理されているようです。 変数ではなく、フォームのname属性値を直接記述すると動作します。 エラーメッセージは 「コード:0 エラー:'document.frmName.elements' は Null またはオブジェクトではありません。」 となっています。 何か解決方法はありますでしょうか? ----JavaScript部分 //全てのチェックボックのチェックをON function chBxOn(frmName){ alert(frmName); for (var i=0; i<document.frmName.elements.length; i++){ document.frmName.elements[i].checked = true; } ---- 関数呼出部分 <form name="xxxxx"> <a href="javascript:chBxOn('xxxxx')">ON</a> <input type="checkbox"> <input type="checkbox"> <input type="checkbox"> </form>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
for (var i=0; i<document.forms[frmName].elements.length; i++){ document.forms[frmName].elements[i].checked = true; }
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
<script language="javascript"> function chBxOn(frmName){ f=document.forms[frmName]; for (var i=0; i<f.length; i++){ f[i].checked = true; } } </script> <form name="xxxxx"> <a href="javascript:chBxOn('xxxxx')">ON</a> <input type="checkbox"> <input type="checkbox"> <input type="checkbox"> </form>