InternetExplorer7 では動いている JavaScript が Firefox3 では動かない件。
JavaScript が
こんな感じで、本文が、
こんな感じ。
つまり、プルダウンで値を選択すると、その値によって異なるメッセージをセットしているだけだ。
一応、setMsg 関数の頭に alert 文を突っ込んでやると、ちゃんとダイアログボックスが開くので、onChange="setMsg();" による関数の実行はされているようだ。
Firefox3 のエラーコンソールを見ると、
と出ている。
どうも、name 属性値で要素を指定することが出来ないようで。
ID 指定で要素をオブジェクト化し、それを使用する形に記述(W3C 標準の記述?)しないといかんようですな。
InternetExplorer7 と比べて、Firefox3 はこの辺りのチェックが厳密なようで。
ということで、form に'form1'という ID を指定し、document.getElementById で form1 という element オブジェクトに ID='form1' の要素を突っ込み、それを参照するようにすればOK!
◆JavaScript
◆本文
ま、あと、裏技的に、
を、
という記述に修正すれば W3C 標準のチェックはかからなくなるので JavaScript は動くが、画面の表示が正常に行われなくなる場合もあるじゃろうね。
Tweet
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 は動くが、画面の表示が正常に行われなくなる場合もあるじゃろうね。
コメントする