Rolf B: Problem mit alerts und ggf. if else

Beitrag lesen

Hallo bmxruler,

wenn du im then und else Teil eines if das gleiche stehen hast, ist die Lösung ganz einfach: der if ist überflüssig.

control_digit = last_digit;
if (parseInt(last_digit) + 3 >= 10) {
   tmp = parseInt(control_digit) + 3;
   control_digit = parseInt(tmp) % 10;
}
else {
   tmp = parseInt(control_digit) + 3;
   control_digit = parseInt(tmp) % 10;
}

macht exakt das gleiche wie

   control_digit = last_digit;
   tmp = parseInt(control_digit) + 3;
   control_digit = parseInt(tmp) % 10;

und eigentlich auch das gleiche wie

   control_digit = (parseInt(last_digit) + 3) % 10;

Um herauszufinden, ob dein Replace etwas gemacht hat, kannst Du das Replace-Ergebnis in einer anderen Variablen speichern und nach dem Replace vergleichen, ob sich etwas geändert hat.

Wenn nicht, gibst Du den GEHT NICHT Alert aus und verlässt die Funktion mit return.

Du solltest aber noch überprüfen, ob dein last_digit eine Ziffer ist. Also z.B.

if (last_digit < '0' || last_digit > '9') {
   alert("Ungültige Eingabe");
   return;
}

Statt einer solchen Prüfung könntest Du auch das pattern-Attribut von input benutzen, du musst dann nur verstehen was reguläre Ausdrücke sind. Du kannst mit einem Pattern auch sicherstellen, dass irgendwo 111 in deiner Eingabe vorkommt.

Für Fehlermeldungen könnte sich auch ein weiteres HTML Element anbieten, das den Fehlertext aufnimmt. Alerts sind nervig. Ich will Dir jetzt allerdings nicht mit dem Validation-API kommen, das ist für Dich noch zu komplex.

Rolf

--
sumpsi - posui - clusi