Javascript Check Formular

Diskutiere das Thema Javascript Check Formular im Forum Web-Programmierung

  1. v4umax

    v4umax Thread Starter Mitglied

    Beiträge:
    29
    Zustimmungen:
    0
    Mitglied seit:
    07.05.2007
    Hallo Leute,

    Möchte gerne auf meiner Homepage ein Formular für Dateneingabe
    einbinden, das wiederum durch ein Java-Script überprüft wird.
    Habe folgendes htm Dokument verfasst. Die überprüfung von Ein-
    gaben im Dokument funktioniert tadellos.

    Zur ergänzung möchte ich nun, dass auch die Anrede "HERR/FRAU"
    überprüft wird. Kann mir bitte jemand helfen? Ich weis nicht
    mehr weiter!

    Code:
    <html>
    <head><title>Formulare mit Javascript</title>
    
    <script type="text/javascript">
    function checkForm() {
      var strFehler='';
      if (document.forms[0].Name.value=="")
        strFehler += "Der Name fehlt oder hat einen Fehler!\n";
      if (document.forms[0].Telefon.value=="")
        strFehler += "Die Telefonnummer fehlt oder hat einen Fehler!\n";
      if (!validEmail(document.forms[0].Email.value)) {
        strFehler += "Die E-Mail-Adresse fehlt oder hat einen Fehler!\n";
      }
        
      if (strFehler.length>0) {
        alert("Datenfehler! Festgestellte Probleme: \n\n"+strFehler);
        return(false);
      }
    }
    function validEmail(email) {
      var strReg = "^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$";
      var regex = new RegExp(strReg);
      return(regex.test(email));
    }
    </script>
    </head>
    
    <body marginwidth="0" leftmargin="0" marginheight="0" topmargin="0" bgcolor="#787878" text="#000000">
    
    <form action="formmail.php" method="POST" onsubmit='return checkForm()'>
    
    <input type="hidden" name="subject" value="verteiler">
    	
    	<input type="hidden" name="access" value="irregeheim">
        
    	B&uuml;ro
    	<br>
    	<input name="Buero" type="text" id="Buero" value="" size="20">
    	<br>
    	
    	Anrede
    	<br>
    	<input type="radio" name="Anrede" value="Herr"> Herr
    	<br>
    	<input type="radio" name="Anrede" value="Frau"> Frau
    	<br>						
    	
    	Position
    	<br>
    	<select name="Position">
    		<option> Keine Angabe </option>
    		<option> Chef(in) </option>
    		<option> Inhaber(in) </option>
    		<option> Gesch&auml;ftsf&uuml;rer(in) </option>
    		<option> Abteilungsleiter(in) </option>
    		<option> Freie(r) Mitarbeiter(in) </option>
    		<option> Andere Position </option>
    	</select>
    	<br>
    						
    	Vorname
    	<br>
    	<input name="Vorname" type="text" id="Vorname" value="" size="20">
    	<br>
    
    	Name
    	<br>
    	<input name="Name" type="text" id="Name" value="" size="20">
    	<br>
    
    	Strasse
    	<br>
    	<input name="Strasse" type="text" id="Strasse" value="" size="20">
    	<br>
    	
    	Ort
    	<br>
    	<input name="Ort" type="text" id="Ort" value="" size="20">
    	<br>
    	
    	Telefon
    	<br>
    	<input name="Telefon" type="text" id="Telefon" value="" size="20">
    	<br>
    	
    	Telefax
    	<br>
    	<input name="Telefax" type="text" id="Telefax" value="" size="20">
    	<br>
    	
    	Email
    	<br>
    	<input name="Email" type="text" id="Email" value="" size="20">
    	<br>
    	
    	Internet
    	<br>
    	<input name="Internet" type="text" id="Internet" value="" size="20">
    	<br>
          
    	Eingabe
    	<br>
    	<textarea name="Eingabe" cols="60" rows="20" wrap="PHYSICAL" id="Eingabe">
    	</textarea>
    	<br>
          
    	<br>
    	<input type="submit" value="Abschicken">
    
    </form>
    
    </body>
    </html>
    
    
     
  2. wegus

    wegus Mitglied

    Beiträge:
    16.047
    Zustimmungen:
    2.637
    Mitglied seit:
    13.09.2004
    Der Titel ist unglücklich gewählt:

    Java != Javascript

    bitte beachten!!!
     
  3. somunium

    somunium Mitglied

    Beiträge:
    326
    Zustimmungen:
    35
    Mitglied seit:
    16.01.2008
    Du kannst bei einer IF-Abfrage auch auf zwei Werte vergleichen.

    PHP:
    if("Frau" == document.forms[0].Anrede.value xor "Herr" == document.forms[0].Anrede.value)
    Die Bedingung gilt als erfüllt, wenn eine Seite vom XOR true, und die andere false ergibt.
    (Schließlich kann man sich nicht gleichzeitig mit Herr und Frau anreden lassen).

    Hier würde zwar auch ein simles 'OR' reichen, da beides mal dass gleiche Feld überprüft wird, aber wenn sich da mal was ändert, hat man ein Zeichen wenig, was man ersetzen muss :D
    (Beim 'or' reicht es, dass eine Seite 'true' ergibt, unabhängig von der anderen).

    Mfg
    Lukas
     
  4. dms

    dms

    Moderne Browser unterstützen meines Wissens nach alle die value-Eigenschaft von Select-Objekten. Auf der sicheren Seite ist man aber wenn man die ausgewählte Option direkt anspricht.

    Code:
    document.forms[0].Anrede.options[document.forms[0].Anrede.options.selectedIndex].value
     
  5. v4umax

    v4umax Thread Starter Mitglied

    Beiträge:
    29
    Zustimmungen:
    0
    Mitglied seit:
    07.05.2007
    Funktioniert leider nicht! Das Formular wird gleich abgeschickt!
    Ohne jegliche prüfung! Hier mal mein neues Head script:

    Code:
    <script type="text/javascript">
    function checkForm() {
      var strFehler='';
      if(document.forms[0].Anrede.options[document.forms[0].Anrede.options.selectedIndex].value=="")
        strFehler += "Die Anrede fehlt oder hat einen Fehler!\n";
      if (document.forms[0].Name.value=="")
        strFehler += "Der Name fehlt oder hat einen Fehler!\n";
      if (document.forms[0].Telefon.value=="")
        strFehler += "Die Telefonnummer fehlt oder hat einen Fehler!\n";
      if (!validEmail(document.forms[0].Email.value)) {
        strFehler += "Die E-Mail-Adresse fehlt oder hat einen Fehler!\n";
      }
        
      if (strFehler.length>0) {
        alert("Datenfehler! Festgestellte Probleme: \n\n"+strFehler);
        return(false);
      }
    }
    function validEmail(email) {
      var strReg = "^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$";
      var regex = new RegExp(strReg);
      return(regex.test(email));
    }
    </script>
     
  6. v4umax

    v4umax Thread Starter Mitglied

    Beiträge:
    29
    Zustimmungen:
    0
    Mitglied seit:
    07.05.2007
    Auch folgender Angaben gehen nicht ?

    Code:
    function checkForm() {
      var strFehler='';
      if("Frau" == document.forms[0].Anrede.value xor "Herr" == document.forms[0].Anrede.value=="")
         strFehler += "Die Anrede fehlt oder hat einen Fehler!\n";
      if (document.forms[0].Name.value=="")
        strFehler += "Der Name fehlt oder hat einen Fehler!\n";
      if (document.forms[0].Telefon.value=="")
        strFehler += "Die Telefonnummer fehlt oder hat einen Fehler!\n";
      if (!validEmail(document.forms[0].Email.value)) {
        strFehler += "Die E-Mail-Adresse fehlt oder hat einen Fehler!\n";
      }
     
  7. somunium

    somunium Mitglied

    Beiträge:
    326
    Zustimmungen:
    35
    Mitglied seit:
    16.01.2008
    Jetzt musst Du noch die Informationen aus dms's und meinem Post verbinden, und dann klappts ;)
     
  8. dms

    dms

    Mit welchem Browser testest Du denn? In Opera und Firefox gibt es eine Fehlerkosole, die so gut wie immer sehr hilfreich ist beim debuggen von JavaScript.
    Auch Safari hat eine Fehlerkonsole, die Du aber erst über das Terminal aktivieren musst: http://developer.apple.com/internet/safari/faq.html#anchor14
     
  9. v4umax

    v4umax Thread Starter Mitglied

    Beiträge:
    29
    Zustimmungen:
    0
    Mitglied seit:
    07.05.2007
    Ich komm nicht auf den grünen Punkt !
    Meine Fehlerkonsole meldet noch immer:
    missing ) after condition.

    Könnt ihr mir nicht das ganze Script einmal posten ?
    Vielen lieben dank !:(
     
  10. gishmo

    gishmo Mitglied

    Beiträge:
    817
    Zustimmungen:
    23
    Mitglied seit:
    16.03.2004
    Leute, man prüft keine Daten, die gesendet werden im Client!
    Was macht Ihr, wenn der User JavaScript ausschaltet oder einen javaScript-Fehler hat?

    Valedierungen gehören auf den Server! :)
     
Die Seite wird geladen...
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Akzeptieren Weitere Informationen...