Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   JavaScript: Probleme mit Formvalidierung (https://www.delphipraxis.net/63741-javascript-probleme-mit-formvalidierung.html)

Die Muhkuh 22. Feb 2006 12:50


JavaScript: Probleme mit Formvalidierung
 
Hi,

Code:
function validateregform()
{
   var valid = true;
   
   if (document.getElementById("username").value == "")
   {
      valid = false;
   }
   
   if (document.getElementById("loginname").value == "")
   {
      valid = false;
   }
   else
   {
  // Stelle 1
      var regloginname = new RegExp('^[a-z]$');
      
      valid = (regloginname.test(document.getElementById("loginname").value));
   }

  if (document.getElementById("passwort").value == "")
   {
      valid = false;
   }
   
   if (document.getElementById("email").value == "")
   {
      valid = false;
   }
   else
   {
// Stelle 2
      var reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                   '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                   '(\\.)([a-zA-Z]{2,4})$');
    valid = (reg.test(document.getElementById("email").value));      
   }
   
   if (document.getElementById("xfire").value == "")
   {
      valid = false;
   }
   
   if (!valid)
   {
      document.regform.reg.disabled = 'disabled';
   }
   else
   {
      document.regform.reg.disabled = '';
   }
}
So, hier ist erstmal mein JavaScript :) .

Funktionieren tut das ganze ja ohne Probleme, trotzdem hab ich ein Problem damit :mrgreen:

Also, wenn nun bei Stelle 1 Valid = false ist, sollte ja der Button nicht aktiv sein.
Das Problem ist nun, wenn bei Email was gültiges drinne steht, wird valid wieder = true und man kann den Button drücken, auch wenn was fehlerhaftes in loginname steht.

Deswegen meine frage: Wie könnte man diese Formvalidierung besser machen?

alcaeus 22. Feb 2006 12:53

Re: JavaScript: Probleme mit Formvalidierung
 
Z.B. indem du alles zusammenfasst:
Code:
if (...)
{
}
else if (...)
{
}
else if (...)
{
}
;)

Greetz
alcaeus

Die Muhkuh 22. Feb 2006 12:55

Re: JavaScript: Probleme mit Formvalidierung
 
Hi,

wie fasse ich das zusammen?

Code:
{
      valid = false;
   }
   else
   {
  // Stelle 1
      var regloginname = new RegExp('^[a-z]$');
     
      valid = (regloginname.test(document.getElementById("loginname").value));
   }

  if (document.getElementById("passwort").value == "")
   {
      valid = false;
   }
:-?

alcaeus 22. Feb 2006 13:07

Re: JavaScript: Probleme mit Formvalidierung
 
Z.B. so. Ist nicht getestet, aber du siehst woraus das hinauslaeuft ;)
Code:
function validateregform()
{
   var valid = true;
   var message = '';
   
   if (document.getElementById("username").value == "")
   {
      valid = false;
      message = 'Leerer Benutzername';
   }
   else if (document.getElementById("loginname").value == "")
   {
      valid = false;
      message = 'Leerer Login-Name';
   }
   else if (!document.getElementById("loginname").value.match(^[a-z]$))
   {
      valid = false;
      message = 'Ungültiger Benutzername';
   }
   else if (document.getElementById("passwort").value == "")
   {
      valid = false;
      message = 'Leeres Passwort';
   }
   else if (document.getElementById("email").value == "")
   {
      valid = false;
      message = 'Leere Email-Adresse';
   }
   else if (!document.getElementById("email").value.match(^([a-zA-Z0-9\\-\\.\\_]+)(\\@)([a-zA-Z0-9\\-\\.]+)(\\.)([a-zA-Z]{2,4})$))
   {
      valid = false;
      message = 'Ungültige Email-Adresse';
   }
   else if (document.getElementById("xfire").value == "")
   {
      valid = false;
      message = 'xfire ungültig';
   }
   
   if (!valid)
   {
      document.regform.reg.disabled = 'disabled';
      alert(message);
   }
   else
   {
      document.regform.reg.disabled = '';
   }
}
Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz