プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (2件)

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


document.forms[frmName].elements[i].checked = true;
}
    • good
    • 0

<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>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!