[JavaScript] NNとIEで結果が違うケース

[上に] [前に] [次に]
2000/01/25(火) 10:40:21
以下のHTMLで、2つのselectを両方とも空欄のままにして
ボタンを押すと、NNとIEで結果が違います。
IEの方が理想なのですが、これをNN向けに書き換えるには
どうしたらいいのでしょうか?


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>テスト</title>
<script type="text/javascript" defer>
<!--
function analyze(obj)
{
var a = "";
if (obj.aaa.value != "" && obj.bbb.value != "") {
a = obj.aaa.value + obj.bbb.value;
}
alert(a);
}
//-->
</script>
</head>
<body>
<form action="aaa.html" method="get">
<p>
<select name="aaa">
<option value="">&nbsp;</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<select name="bbb">
<option value="">&nbsp;</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<input type="button" value="Click!" onclick="analyze(this.form);">
</p>
</form>
</body>
</html>

ポケ鬼!!(久々) 2000/01/25(火) 12:10:56
selectは扱いがちょっと違うんですよね

var a = "";
var aa,bb;

aa = obj.aaa.selectedIndex
bb = obj.bbb.selectedIndex

if (aa != 0 && bb != 0) {
a = obj.aaa.options[aa].value + obj.bbb.options[bb].value;
}
alert(a);


これでどうですか?

すわみつお 2000/01/25(火) 12:17:19
function analyze(obj){〜}

この関数の中でセレクトボックスの値を
obj.aaa.value
のようにして参照されていますが、( obj はこの時 form を表す)
NNでも使えるようにするには
obj.aaa.options[obj.aaa.selectedIndex].value
としなければいけません。

2000/01/25(火) 13:02:02
[[解決]]
この無意味な仕様の違いは何なんでしょ!?
ありがとうございました。

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