Carlos Hix: focus() im MSIE5

Beitrag lesen

Hallo,

ich benutze öfters kleine Javascripts um eingaben in Formularfelder zu überprüfen. Falls bei einer diesen Überprüfungen ein Fehler / Falscheingabe entdeckt wird, soll eine Meldung ausgegeben werden (mittels "alert()") und der Cursor zurück in das betroffene Feld positioniert werden (mit "focus()", Beispiel weiter Unten). Das Problem ist: mit MSIE bis Version 4 und Netscape (zumindest alle getesteten Versionen) funktioniert es einwandfrei, bei MSIE5 gibt es allerdings ein seltsames verhalten: statt das der Cursor wie erwartet in das angegebene Feld positioniert wird, landet er in dem Seitenadresse-Feld (URL) des Browsers. Weis jemand wieso und (noch wichtiger) wie dieses verhalten zu umgehen ist?

Vielen Dank im Voraus

Carlos Hix

____________________________________________________
Beispielcode:

<HTML>
<HEAD>
<TITLE>Javascript Test</TITLE>
<SCRIPT language=Javascript1.1> <!--
function CheckInput(obj) {
with (obj) {
  if (value.toUpperCase()!="X") {
   focus();
   select();
   return false;
  }
}
return true;
}
// --> </SCRIPT>

<BODY>
<H1>Javascript Test</H1><BR>
<FORM name=TestForm onsubmit="return false">
Input 1: <INPUT name=Input1 onchange="return CheckInput this)"><BR>
Input 2: <INPUT name=Input2 onchange="return CheckInput(this)"<BR>
<INPUT name="Button1" onclick=TestForm.Input1.focus() type=button value="Button 1">
 
<INPUT name="Button2" onclick=TestForm.Input2.focus() type=button value="Button 2">
</FORM>

<SCRIPT language=Javascript1.1> <!--
TestForm.reset();
TestForm.Input1.focus();
// --> </SCRIPT>
</BODY>
</HTML>