Firefox3 で JavaScript が動かない件

InternetExplorer7 では動いている JavaScript が Firefox3 では動かない件。

JavaScript が

function setMsg(){
    var msg = new Array();
    msg[0]    = "選択してください";
    msg[1]    = "1番選択されました";
    msg[2]    = "2番選択されました";
    form1.text1.value    = msg[form1.select1.selectedIndex];
}

こんな感じで、本文が、

<form name="form1">
選択:<select name ="select1" onChange="setMsg();">
<option value="0" selected>-- 選択してください --</option>
<option value="3">1番目</option>
<option value="8">2番目</option>
</select><br>
メッセージ :<input type="text" name="text1" value="">
</form>

こんな感じ。
つまり、プルダウンで値を選択すると、その値によって異なるメッセージをセットしているだけだ。

一応、setMsg 関数の頭に alert 文を突っ込んでやると、ちゃんとダイアログボックスが開くので、onChange="setMsg();" による関数の実行はされているようだ。

Firefox3 のエラーコンソールを見ると、

エラー: form1 is not defined

と出ている。

どうも、name 属性値で要素を指定することが出来ないようで。
ID 指定で要素をオブジェクト化し、それを使用する形に記述(W3C 標準の記述?)しないといかんようですな。
InternetExplorer7 と比べて、Firefox3 はこの辺りのチェックが厳密なようで。

ということで、form に'form1'という ID を指定し、document.getElementById で form1 という element オブジェクトに ID='form1' の要素を突っ込み、それを参照するようにすればOK!

◆JavaScript

function setMsg(){
    var msg = new Array();
    msg[0]    = "選択してください";
    msg[1]    = "1番選択されました";
    msg[2]    = "2番選択されました";
    var form1    = document.getElementById("form1");
    form1.text1.value    = msg[form1.select1.selectedIndex];
}

◆本文

<form id="form1" name="form1">
選択:<select name ="select1" onChange="setMsg();">
<option value="0" selected>-- 選択してください --</option>
<option value="3">1番目</option>
<option value="8">2番目</option>
</select><br>
メッセージ :<input type="text" name="text1" value="">
</form>

ま、あと、裏技的に、

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

を、

<html>

という記述に修正すれば W3C 標準のチェックはかからなくなるので JavaScript は動くが、画面の表示が正常に行われなくなる場合もあるじゃろうね。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Firefox3 で JavaScript が動かない件

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/690

コメントする

このブログ記事について

このページは、shinodaが2009年7月10日 11:10に書いたブログ記事です。

ひとつ前のブログ記事は「「山小屋」の激辛ラーメン」です。

次のブログ記事は「Perl スクリプトで RTF ファイルを出力する」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら