set the funky focus
timex
- javascript
hallo zusammen ...
ich programmiere gerade eine js-abfrage fuer ein uebliches fomular.
die function switchItem() zeigt bei fehlerhafter eingabe ein kleines icon und einen fehlertext an. wenn ok, dann wird der fehlertext und das icon wieder ausgeblendet.
hier das script (in auszuegen) ...
<script language="JavaScript" type="text/javascript">
<!--
function checkForm() {
var ok = true;
if (checkText("vorname")) {
ok = false;
switchItem("vorname",1,1);
} else {
switchItem("vorname",0,0);
}
if (checkText("nachname")) {
ok = false;
switchItem("nachname",1,1);
} else {
switchItem("nachname",0,0);
}
// ...
if (!checkMail(searchFormObject("mail").value)) {
ok = false;
switchItem("mail",1,1);
} else {
switchItem("mail",0,0);
}
if (!ok)
return ok;
}
// -->
</script>
aufruf via <form action="ok.html" name="test" onSubmit="return checkForm();">
alles super! jetzt will ich gerne in ein fehlerhaftes feld den focus setzen.
if (checkText("vorname")) {
ok = false;
switchItem("vorname",1,1);
document.test.elements["vorname"].focus(); // da rein, muss ich noch optimieren, nix mit documentblabla ...
} else {
switchItem("vorname",0,0);
}
auch super, wenn ich die gleiche zeile in die naechste abfrage (also nachname, mail und so fort...) setze, springt der focus immer in die letzte eingabemoeglichkeit. was an sich auch logisch ist, aber nicht mein ziel ist. ich moechte ja den focus auf das erste feld setzen, dass fehlerhaft ist.
vielleicht hat jemand eine idee?!
danke im voraus fuer die hilfe.
gruss, timex.
hi,
auch super, wenn ich die gleiche zeile in die naechste abfrage (also nachname, mail und so fort...) setze, springt der focus immer in die letzte eingabemoeglichkeit. was an sich auch logisch ist, aber nicht mein ziel ist. ich moechte ja den focus auf das erste feld setzen, dass fehlerhaft ist.
setze dir ein flag, ob bereits ein fehler aufgetreten ist, und nur wenn dies nicht der fall ist, setze den fokus auf das aktuelle feld.
gruss,
wahsaga
setze dir ein flag, ob bereits ein fehler aufgetreten ist, und nur wenn dies nicht der fall ist, setze den fokus auf das aktuelle feld.
flag?! also ein variable definieren, diese in allen abfragen mitscheifen und am ende den focus setzen? ich versuch's mal.
danke & gruss, timex
funzt nicht, selber effekt, was mache ich falsch?!
fragt freundlich
timex
hi,
funzt nicht, selber effekt, was mache ich falsch?!
woher soll ich das wissen, ohne zu sehen, was du gemacht hast?
gruss,
wahsaga
sorry,
function checkForm() {
var ok = true;
var flag = true;
if (checkText("vorname")) {
ok = false;
flag = false;
switchItem("vorname",1,1);
} else {
flag = true;
switchItem("vorname",0,0);
if (flag = false)
document.test.vorname.focus();
}
...
das kann es aber nicht sein ...
hi,
if (flag = false)
hier führst du eine zuweisung aus, meinst aber sicherlich einen vergleich - also flag == false.
gruss,
wahsaga