Rolf Eickmann: Mal wieder Formulare

Hi

also ich bin was Javascript angeht ein ziemlicher Laie. Ich habe mir daß Beispiel angesehen und versucht anzuwenden. Ich habe dazu noch zwei Fragen.

Zum einen, wie kann ich bei dem ersten Check dafür sorgen, daß nicht nur 9, sondern 9 und mehr erlaubt sind.
Zum zweiten möchte ich prüfen ob die beiden Paßwort eingaben identisch sind oder nicht.

Vielen Dank für die Hilfe

Rolf Eickmann

<html>
<head>
<title>Formular</title>
<script type="text/javascript">
<!--

function chkFormular()

{

if(document.Formular.User.value.length != 9) {
   alert("Enter your Name please!");
   document.Formular.User.focus();
   return false;
  }

if(document.Formular.pass1.value == "") {
   alert("Enter your password 1 please!");
   document.Formular.pass1.focus();
   return false;
  }

if(document.Formular.pass2.value == "") {
   alert("Enter your password 2 please!");
   document.Formular.pass2.focus();
   return false;
  }
 if(document.Formular.mail.value == "") {
   alert("Enter your e-mail please!");
   document.Formular.mail.focus();
   return false;
  }
 if(document.Formular.mail.value.indexOf('@') == -1) {
   alert("No correct e-mail!");
   document.Formular.mail.focus();
   return false;
  }
 if(document.Formular.remind.value == "") {
   alert("Please enter a reminder phrase!");
   document.Formular.remind.focus();
   return false;
  }}

</script>
</head>
<body bgcolor="#EEEEEE" text="#000000">

<h1>Formular</h1>

<form name="Formular" action=mailto:"fffff@cccp.de" method="post" onSubmit="return chkFormular()">
<pre>
Username:     <input type="text" size="40" name="User">
Password 1:   <input type="password" size="40" name="pass1">
Password 2:   <input type="password" size="40" name="pass2">
E-Mail:   <input type="text" size="40" name="mail">
Reminder:    <input type="text" size="40" name="remind">
Formular:  <input type="submit" value="Send"><input type="reset" value="Cancel">

</pre>
</form>

</body>
</html>

  1. Hi,

    also ich bin was Javascript angeht ein ziemlicher Laie.

    dann bist Du bei SelfHTML richtig :-)

    Zum einen, wie kann ich bei dem ersten Check dafür sorgen, daß nicht nur 9, sondern 9 und mehr erlaubt sind.
    Zum zweiten möchte ich prüfen ob die beiden Paßwort eingaben identisch sind oder nicht.

    Beide Fragen werden in http://selfhtml.teamone.de/javascript/sprache/operatoren.htm beantwortet (zweites gelbes Kästchen).

    Cheatah

    1. Vielen Dank für die schnelle Antwort.

      Der Favorit ist angelegt

  2. Hallo nochmal,

    nachdem ich die ersten beiden Hürden durch die Hilfe überwunden habe, bleibt noch eine Frage. Ich will bei dem versenden, daß auch das datum, z.B. das lastModified mit eingefügt wird. Machen wollte ich das per hidden. Meine Frage ist jetzt, ob das so klappt, wie ich es unten dargestellt habe (wahrscheinlich nicht). Würde mich über Hilfe sehr freuen.

    ...
    var d = document.lastModified
    ....

    ...
    <input type="hidden" value="d" name="hide">
    ...

    so long

    Rolf Eickmann

    1. Hi,

      var d = document.lastModified

      dies ist JavaScript-Code,

      <input type="hidden" value="d" name="hide">

      und dies HTML-Code. Hier wird beim Absenden der Parameter "hide=d" übermittelt werden. Woher soll HTML auch wissen, _welches_ der vielen möglicherweise vorkommenden "d" es ersetzen soll? Es kann x-mal auf der Seite vorkommen. Gut, dass HTML nicht mal von der Existenz von JavaScript etwas ahnt.

      Du hast zwei Möglichkeiten. Entweder schreibst Du den hidden input per document.write() heraus - dann ist der Parameter gar nicht vorhanden, wenn z.B. JavaScript deaktiviert oder gar nicht vorhanden ist. Oder Du schreibst einen Dummy-Wert rein (z.B. "kein JS") und veränderst (_nach_ dem Formular!) den Wert per JavaScript Deinen Wünschen entsprechend.

      Die dritte, zu bevorzugende Möglichkeit ist, den Wert mit einer serverseitigen Technik, z.B. SSI, hineinzuschreiben. Das funktioniert _immer_ und erzeugt auch nicht im Zweifelsfall beim Besucher einen JavaScript-Fehler.

      Cheatah