Uzami: Lengh Prüfung nicht ausgeführt

  
 if(document.Formular.Nickname.value == "" || document.Formular.Nickname.value.length < 4) {  
  window.alert("Fehler");  
  document.Formular.Nickname.focus();  
  return(false);  
 }  

Der Fehler ist hier folgender: Wenn ich nichts eingebe, fokusiert er das Feld nachdem die Fehlermeldung ausgegeben wurde.

Wenn ich aber schon was eingebe, und er mir den Fehler zurück gibt, weil er unter 4 zeichen liegt, dann fokusiert er nicht und leert sogar das ganze formular. Was kann ich dagegen tun?

Danke im Vorraus.

  1. Liebe(r) Uzami,

    kann es sein, dass diese Prüfung nur zum Teil sinnvoll ist?

    if(document.Formular.Nickname.value == "" || document.Formular.Nickname.value.length < 4)

    Wenn ich das richtig verstehe, dann ist ein leeres Feld ebenso mit einer Wertelänge kleiner vier zu deuten, oder liege ich da falsch? Von daher ändere ich das einmal so ab:

    if (document.Formular.Nickname.value.length < 4) {

    So und nun zu Deiner return-Anweisung...

    return(false);

    Was soll diese Klammerei? Ist das eine Verkürzung für einen komplexeren Ausdruck, den Du uns hier nicht vorführen wolltest, oder steht das tatsächlich so in Deinem Code?

    Der Fehler ist hier folgender: Wenn ich nichts eingebe, fokusiert er das Feld nachdem die Fehlermeldung ausgegeben wurde.

    Da würde ich sagen: "works as designed" - oder ist dieses Verhalten nicht gewollt?

    Wenn ich aber schon was eingebe, und er mir den Fehler zurück gibt, weil er unter 4 zeichen liegt, dann fokusiert er nicht und leert sogar das ganze formular.

    Du hast versäumt, den größeren Zusammenhang zu schildern, sodass ich keine Ahnung habe, wann "er" wie auf was wo reagiert. Verwendest Du irgendwelche Events? Und wie machst Du das?

    Was kann ich dagegen tun?

    Deaktiviere JavaScript! Oder was willst Du eigentlich erreichen? Das hast Du auch nicht gesagt.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)