selectボックスに西暦を表示しています。
このselectボックスを2つ用意して、範囲設定を行っているのですが、
範囲指定大小チェックのロジックを作り、IEでは正しく動作したのですが、
NNだと関数conf()内でdocument.test.FROM_YEAR.valueとdocument.test.TO_YEAR.valueの値をみてみると、nullになっていたためFORM_YEAR>TO_YEARと指定しても範囲指定大小チェックのif文が、必ずfalseになって
処理を続行してしまいます。
なぜ、IEではうまくいくのにNNだとうまくいかないのでしょうか?
これってNNのバグ???

~ソースコード(抜粋)~
<SCRIPT LANGUAGE="JavaScript">
<!--
function conf() {

from = document.test.FROM_YEAR.value;
to = document.test.TO_YEAR.value;
if (from > to) {
alert("年の指定に誤りがあります。");
return false;
}
}
//-->
</SCRIPT>

<FORM NAME='test' ACTION='test.html' METHOD="post" onSubmit="return(conf())">
<SELECT NAME='FROM_YEAR'>
<OPTION VALUE='2001'>2001
<OPTION VALUE='2002' SELECTED>2002
<OPTION VALUE='2003'>2003
<OPTION VALUE='2004'>2004
<OPTION VALUE='2005'>2005
<OPTION VALUE='2006'>2006
</SELECT>年
<SELECT NAME='TO_YEAR'>
<OPTION VALUE='2001' SELECTED>2001
<OPTION VALUE='2002'>2002
<OPTION VALUE='2003'>2003
<OPTION VALUE='2004'>2004
<OPTION VALUE='2005'>2005
<OPTION VALUE='2006'>2006
</SELECT>年
<INPUT TYPE='SUBMIT' NAME='SUBMIT' VALUE='登録'>

A 回答 (1件)

> なぜ、IEではうまくいくのにNNだとうまくいかないのでしょうか?



NN の JavaScript では、Select オブジェクトの value はとれません。
いろいろやりかたはありますが、Select オブジェクトが持つ
selectedIndex プロパティを使うのが簡単です。

//from = document.TTT.FROM_YEAR.value;
//to = document.TTT.TO_YEAR.value;
from = document.TTT.FROM_YEAR[document.TTT.FROM_YEAR.selectedIndex].value;
to = document.TTT.TO_YEAR[document.TTT.TO_YEAR.selectedIndex].value;


> これってNNのバグ???

細かいところで NN と IE は JavaScript の仕様が違います。

どちらのブラウザでも見られるようにするのであれば、
navigator オブジェクトから名前とバージョンを取り出して
分岐するしかないです。

↓は、本家 Netscape のマニュアルです。
http://developer.netscape.com/docs/manuals/commu …

参考URLには、selectedIndex のところのURLを載せておきます。

参考URL:http://developer.netscape.com/docs/manuals/commu …
    • good
    • 0
この回答へのお礼

ありがとうございました。
おかげでNNでもちゃんと動いてくれるようになりました。

お礼日時:2001/04/17 16:25

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


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ