• ベストアンサー

サブルーチンへの引数

フォーム内のチェックボックスすべてを一括でチェックする関数を作成しています。 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>

質問者が選んだベストアンサー

  • ベストアンサー
noname#22259
noname#22259
回答No.1

for (var i=0; i<document.forms[frmName].elements.length; i++){ document.forms[frmName].elements[i].checked = true; }

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

<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>

関連するQ&A