IE4.01のonFocusについて

[上に] [前に] [次に]
T25 1998/08/27(木) 16:21:49
下記のソースなのですが、テキストフィールドに何か入力されていないと選択リストにフォーカスが移らない様したかったのですが、IE4.01で実行したところ2,3回連続で選択リストをクリックすると、 フォーカスが移ってしまいます。(リストの内容が表示されてしまう)
NC4.05では正常に動作する(選択リストにフォーカスが移る事は無い)のですが、何が原因なのでしょうか。

-----<test.html>-----
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JAVASCRIPT">
function chk(){
if(document.FORM1.text1.value==""){document.FORM1.text1.focus();}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="FORM1">

<INPUT TYPE="TEXT" NAME="text1" SIZE=10><BR>

<SELECT NAME="combo1" onFocus="chk();">
<OPTION VALUE="1">項目1
<OPTION VALUE="2">項目2
<OPTION VALUE="3">項目3
</SELECT>

</FORM>
</BODY>
</HTML>

oka [E-Mail] [HomePage] 1998/08/28(金) 00:53:51
[[解決]]
なるほど。確かにIEでは不具合が生じますね。
原因は「IEのバグ」としか言いようがないですが、
一つ解決策を見つけました。
テキスト入力のほうに、onBlurを付けるのです。つまり、
<INPUT TYPE="TEXT" NAME="text1" SIZE=10 onBlur="chk();">
とやれば、何故かこっちはIEでは動きました。
逃げようとするところを捕まえるのです(笑)。
でもこの場合は、始めにテキスト入力にフォーカスが移ってないと
効き目が無いから、onLoadで強制的にフォーカスを移せば良いでしょう。
でもあまりにも強制的ですね、これは(笑)。
「何か入力してくれ」という説明をつける必要があるでしょう。

oka [E-Mail] [HomePage] 1998/08/28(金) 01:18:21
[[解決]]
すみません、勝手に「解決チェック」してしまいましたが、
これは質問者が行うものなのですね。勘違いしていました。

T25 1998/08/31(月) 11:49:50
[[解決]]
okaさん、ご返事遅れてすいませんでした。
結局、強引な方法なのですが、テキストフィールドに入力が無い時は
強制的にリストの内容を空にする事にしました。
ありがとうございました。

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