Morjen !
Hab da gestern wohl nicht ganz mitbekommen was du willst :(
Natürlich ist der onBlur Event die Lösung (siehe posting von Cheatah)
Hier eine Möglichkeit:
<html>
<head>
<title>test</title>
<script language="JavaScript">
<!--
var test=0;
function check(feld)
{
if((document.forms[0].elements[feld].value == "") && (test == feld))
{
test=feld;
alert("Bitte Feld " + feld + " ausfuellen!");
document.forms[0].elements[feld].focus();
return false;
}
}
//-->
</script>
<body>
<form action="" methode=post>
<input type="text" name="NameA" size="60" onBlur = "check(0)">
<input type="text" name="NameB" size="60" onBlur = "check(1)">
</form>
</body></html>
(kurz angetestet und ok)
Das seltsame Konstrukt mit der Variable 'test' sollte ich vielleicht kurz erläutern:
onBlur meldet zwar das Verlassen des Feldes (sonst würde ja die Funktion nicht starten ;-)), bricht aber das Ereignis (Wechseln zum nächsten Feld) _nicht_ ab. Wenn die Funktion jetzt den Fokus wieder an das nicht ausgefüllte Feld gibt, hat aber bereits das nächste Feld den Fokus -> onBlur (Verlassen) tritt ein, die Funktion wird erneut aufgerufe, stellt fest das das nächste Feld leer ist, setzt den Fokus ...... eine wunderschöne Endlosschleife -> Affengriff - getestet :)
Möglicherweise gibts eine elegantere Art dieses Problem in den Griff zu bekommen, aber als quick'n'dirty sollte es durchgehen
MfG McNavc