IEとNNのJavaScriptの違い?

[上に] [前に] [次に]
ゆっけ [E-Mail] 1999/04/23(金) 21:46:29
毎度すみません。
ここ何日か悩んでいて何度か投稿して以下のようなプログラムができました。

・サンプルプログラムは3つのチェックボックスがあり、
  1つ目だけがチェックされていたら"100"という文字列にして
  固定パラメータとともにCGIを呼び出すものです。
  まずはフォームがチェックボックスかどうかを調べ、
  そうであればチェックされているかどうかを調べ
  アラートを出す。
  その後に文字列を連結してパラメータとしてCGIに引き渡す。

  以上のような処理です。

これがIE4.xxでは動くのですが、NN4.xxだと動きません。
JavaScriptの仕様の違いのせいでしょうか?
どなたかお助けください。

<SCRIPT LANGUAGE="JavaScript">
<!--
function check() {

chk = 0;
var chdata = "0";
var execaction;

for(i = 0; i < document.form.elements.length - 4; i++)
{

if((document.form.elements[i].name == "chkbx")
&& (document.form.elements[i].checked))
{
chk = 1;
chdata = chdata + "1";
} else {
chdata = chdata + "0";
}
}

if(!(chk))
{
alert("選択してください");
return false;
}else
{
form.chk.value = chdata;
execaction = "xxx.cgi"
+ form.chk.value
+ "&"
+ form.COL1.value
+ "&"
+ form.COL2.value;
form.action = execaction;
form.submit();
return true;
}

}
// -->
</SCRIPT>

<FORM NAME="form" METHOD="POST">
<INPUT TYPE="CHECKBOX" NAME="chkbx" VALUE="">
<INPUT TYPE="CHECKBOX" NAME="chkbx" VALUE="">
<INPUT TYPE="CHECKBOX" NAME="chkbx" VALUE="">
<INPUT TYPE="IMAGE" SRC="../image/xxx.gif" onClick="return check()">
<INPUT TYPE="HIDDEN" NAME="chk" VALUE="">
<INPUT TYPE="HIDDEN" NAME="COL0" VALUE="0">
<INPUT TYPE="HIDDEN" NAME="COL1" VALUE="1">
<INPUT TYPE="HIDDEN" NAME="COL2" VALUE="2">
</FORM>

ゆっけ 1999/04/23(金) 21:47:20
非常に長くてすみません。

ふじ 1999/04/23(金) 22:22:16
とりあえず check 関数で単に form となっているところを
document.form として(単に form だと、NNには「定義されてないよ」って怒られます)、
更に

<FORM NAME="form" METHOD="POST" onSubmit="return check();">
<INPUT TYPE="IMAGE" SRC="../image/xxx.gif">
とすれば、NNでも動くようです。

あと、
execaction = "xxx.cgi"

execaction = "xxx.cgi?"
ですね。

でで 1999/04/26(月) 13:21:29
フォームの名前はformとか予約語っぽいのは
さけたほうがいいです。

ゆっけ 1999/04/26(月) 15:20:13
[[解決]]
ありがとうございます。
あっさり動きました。
JavaScriptでの細かい定義が必要なんですね。
(本当はもともときちんと定義してあげないといけないですよね。)

[上に] [前に] [次に]