• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bitte nochmal um Hilfe

stf

Neues Mitglied
Hallo,
vorab erstmal Danke für Euere schnelle Hilfe in meinem letzten Beitrag.
Hier habe ich nun leider wieder ein Kopfzerbrechen, kann mir wieder jemand helfen?
Es geht um folgende Studienaufgabe:
Umfrage-Formular, hier das Script von mit:
HTML:
<html>
<head>
<title>Umfrage Formular</title>
<script type="text/javascript">
function umfrageFormular () {
  if (document.Formular.User.value == "") {
    alert("Bitte Ihren Vornamen eingeben!");
    document.Formular.User.focus();
    return false;
  }
  if (document.Formular.Nachname.value == "") {
    alert("Bitte Ihren Nachnamen eingeben!");
    document.Formular.Nachname.focus();
    return false;
  }
  if (document.Formular.Alter.value == "") {
    alert("Bitte Ihr Alter eingeben!");
    document.Formular.Alter.focus();
    return false;
  }
  var pruefeZahl = 1;
  for (i = 0; i < document.Formular.Alter.value.length; ++i)
    if (document.Formular.Alter.value.charAt(i) < "0" ||
        document.Formular.Alter.value.charAt(i) > "9")
      pruefeZahl = -1;
  if (pruefeZahl == -1) {
    alert("Altersangabe keine Zahl!");
    document.Formular.Alter.focus();
    return false;
  }
}
</script>
</head>
<body>
<h1>Umfrageformular</h1>
<form name="Formular" action="" method="post" onsubmit="return umfrageFormular()">
Name:     <input type="text" size="40" name="User">
Nachname:  <input type="text" size="40" name="Nachname">
Alter:    <input type="text" size="40" name="Alter">
Welcher Kandidat wäre Ihr Favorit? 
  <select name="select" id="select"><option value="Startwert">-----</option>
    <option value="B.Tr&uuml;ger">B.Tr&uuml;ger</option>
    <option value="D.Menti">D.Menti</option>
    <option value="H.Lodri">H.Lodri</option>
    <option value="G.Scheitert">G.Scheitert</option>
  </select>
  <br />
<input type="submit" value="Absenden"><input type="reset" value="Abbrechen">
</form>
</body>
</html>

Und hier die Vorgaben was dieses Formular können muss:
  1. Abfrage ob Name, Vorname eingegeben worden sind // Status ok
  2. Bei Altersangabe muss eine Zahl größer als 18 verwenden werden // Zahl=ja, größer als 18 bekomme ich nicht hin (derzeit funktioniert nur die Prüfung nach Zahl)
  3. Wenn diese Abfragen in Ordnung sind, der User im Dropdownmenü einen Namen (nicht den Standardwert "-----") gewählt hat und anschliesend auf "Absenden" klickt soll der ausgewählte Name als Meldung per PopUp ausgegeben werden.

Ich habe damit sehr große Probleme, seit Tagen bastle ich da nun hin und her, dem Script ableitend werdet Ihr erkennen das hier SelfHTML schon etwas mit geholfen hat. Ich komme einfach nicht weiter, bitte helft. Wenn es dem Künstler nichts ausmacht wäre ich supi dankbar wenn es auch eine kleine Dokumentation geben würde, letzten endes möchte ich das alles verstehen lernen. Danke im vorraus!
 
Zuletzt bearbeitet:
Code:
if (isNan(parseInt(document.Formular.Alter.value)) || parseInt(document.Formular.Alter.value) < 18) {
    alert("Bitte Ihr Alter eingeben! Sie müssen über 18 Jahre alt sein");    
    document.Formular.Alter.focus(); 
    return false;  
}

Damit kannst du dir deine untere seltsame Abfrage sparen und prüfst ob man eine Zahl eingegeben hat die höher als 18 ist.
 
Zuletzt bearbeitet:
Meinst Du die komplette Alters-Abfrage raus und Deins rein? Das funzt bei mir leider nicht.
So hatte ich das ausprobiert:

Code:
[COLOR=#800000]<script type=[COLOR=#0000FF]"text/javascript"[/COLOR]>[/COLOR] 
function umfrageFormular () 
{  
 if (document.Formular.User.value == "") 
{     alert("Bitte Ihren Vornamen eingeben!");     
document.Formular.User.focus();     
return false;   
}   
if (document.Formular.Nachname.value == "") 
{     alert("Bitte Ihren Nachnamen eingeben!");     
document.Formular.Nachname.focus();     
return false;  
 } 
if (isNan(parseInt(document.Formular.Alter.value)) || parseInt(document.Formular.Alter.value) < 18) 
{    
 alert("Bitte Ihr Alter eingeben! Sie müssen über 18 Jahre alt sein");
document.Formular.Alter.focus();      
return false;   
} 
} [COLOR=#800000]
</script>[/COLOR]

So (Code unten) findet zumindest die Abfrage ob eine Zahl vorhanden ist statt. Aber das die Zahl dann auch über 18 ist, das funktioniert nicht:

Code:
<script type="text/javascript">
function umfrageFormular () {
// Vorname    
  if (document.Formular.User.value == "") {
    alert("Bitte Ihren Vornamen eingeben!");
    document.Formular.User.focus();
    return false;
  }
// Nachname  
  if (document.Formular.Nachname.value == "") {
    alert("Bitte Ihren Nachnamen eingeben!");
    document.Formular.Nachname.focus();
    return false;
  }
// Alter
  if (document.Formular.Alter.value == "") {
    alert("Bitte Ihr Alter eingeben!");
    document.Formular.Alter.focus();
    return false;
  }
    var pruefeZahl = 1;
  for (i = 0; i < document.Formular.Alter.value.length; ++i)
    if (document.Formular.Alter.value.charAt(i) < "0" ||
        document.Formular.Alter.value.charAt(i) > "9")
      pruefeZahl = -1;
  if (pruefeZahl == -1) {
    alert("Altersangabe keine Zahl!");
    document.Formular.Alter.focus();
    return false;
  }
  if (isNan(parseInt(document.Formular.Alter.value)) || parseInt(document.Formular.Alter.value) < 18) {
    alert("Bitte Ihr Alter eingeben! Sie müssen über 18 Jahre alt sein");    
    document.Formular.Alter.focus(); 
    return false;  
}
}
</script>

Bitte schau mal.
 
Zuletzt bearbeitet:
OK, habe nun nochmal bischen gebastelt (anders darf man das ja nicht nennen) und bin zu folgendem Resultat gekommen:

Code:
<html>
<head>
<title>Umfrage Formular</title>
<script type="text/javascript">
function umfrageFormular () {
// Vorname    
  if (document.Formular.Vorname.value == "") {
    alert("Bitte Ihren Vornamen eingeben!");
    document.Formular.Vorname.focus();
    return false;
  }
// Nachname  
  if (document.Formular.Nachname.value == "") {
    alert("Bitte Ihren Nachnamen eingeben!");
    document.Formular.Nachname.focus();
    return false;
  }
// Alter
  if (document.Formular.Alter.value == "") {
    alert("Bitte Ihr Alter eingeben!");
    document.Formular.Alter.focus();
    return false;
  }
    var pruefeZahl = 1;
  for (i = 0; i < document.Formular.Alter.value.length; ++i)
    if (document.Formular.Alter.value.charAt(i) < "0" ||
        document.Formular.Alter.value.charAt(i) > "9"|| 
        parseInt(document.Formular.Alter.value) < 18)
      pruefeZahl = -1; 
  if (pruefeZahl == -1) {
    alert("Altersangabe keine Zahl oder Sie müssen älter wie 18 sein!");
    document.Formular.Alter.focus();
    return false;
  }
}
</head>
<body>

<h1>Umfrageformular</h1>

<form name="Formular" action="" method="post" onSubmit="return umfrageFormular()">
<pre>
Vorname:     <input type="text" size="40" name="Vorname">
Nachname:  <input type="text" size="40" name="Nachname">
Alter:    <input type="text" size="40" name="Alter">
Welcher Kandidat wäre Ihr Favorit? 
  <select name="select" id="select"><option value="Startwert">-----</option>
    <option value="Kandidat1">Kandidat1</option>
    <option value="Kandidat2">Kandidat2</option>
    <option value="Kandidat3">Kandidat3</option>
    <option value="Kandidat4">Kandidat4</option>
  </select>
<input type="submit" value="Absenden"><input type="reset" value="Abbrechen">


</form>

</body>
</html>
</script>
Das funktioniert jetzt so bestens. Bleibt nur noch die Abfrage der Kandidaten: könnte mir hier jemand noch behilflich sein?
Es geht praktisch um den 3. Punkt der Vorraussetzungen welches dieses Formular erfüllen soll:

"Wenn diese Abfragen in Ordnung sind, der User im Dropdownmenü einen Namen (nicht den Standardwert "-----") gewählt hat und anschliesend auf "Absenden" klickt soll der ausgewählte Name als Meldung per PopUp ausgegeben werden."
 
Zuletzt bearbeitet:
Code:
if(document.Formular.select.options[0].selected == true)
  return false;
else
{
  for(i=1; i<document.Formular.select.length; i++)
  {
    if(document.Formular.select.options[i].selected == true)
    {
      alert(document.Formular.select.options[i].value);
      break;
    }
  }
}
habs jetz nicht ausprobiert, aber so in etwa sollte es klappen


hier kannst du auch nachschaun, wenn du was nicht verstehst: SELFHTML: JavaScript / Objektreferenz / options
 
Das hilft mir leider nicht weiter. Die Seite von SelfHTML habe ich auch schon durchgearbeitet, in meinem Fall komme ich da aber auch nicht weiter. Könnte noch jmd. helfen?

Hier nochmal die Aufgabenstellung des Formulares:

Das funktioniert bereits:
Name (Pflichtfeld mit Fehlerausgabe PopUp), Vorname (Pflichtfeld mit Fehlerausgabe PopUp), Alter (Pflichtfeld mit Fehlerausgabe PopUp, Es muss Zahl sein, Zahl muss über 18 sein) richtig eingegeben

Das funktioniert noch nicht:
--> User wählt den Kandidaten aus ( außer Startwert "-----")
--> Klick auf "Absenden"
--> es erscheint eine PopUp Meldung mit dem ausgewählten Namen (etwa so: "Sie haben Kandidat 1 ausgewählt").

Und hier nochmal das Script zum jetzigen Stand:

Code:
<html>
<head>
<title>Umfrage Formular</title>
<script type="text/javascript">
function umfrageFormular () {
// Vorname	
  if (document.Formular.Vorname.value == "") {
    alert("Bitte Ihren Vornamen eingeben!");
    document.Formular.Vorname.focus();
    return false;
  }
// Nachname  
  if (document.Formular.Nachname.value == "") {
    alert("Bitte Ihren Nachnamen eingeben!");
    document.Formular.Nachname.focus();
    return false;
  }
// Alter
  if (document.Formular.Alter.value == "") {
    alert("Bitte Ihr Alter eingeben!");
    document.Formular.Alter.focus();
    return false;
  }
    var pruefeZahl = 1;
  for (i = 0; i < document.Formular.Alter.value.length; ++i)
    if (document.Formular.Alter.value.charAt(i) < "0" || document.Formular.Alter.value.charAt(i) > "9"|| //Prüfung ob Zahl
		parseInt(document.Formular.Alter.value) < 18) //Prüfung ob Zahl über 18
      pruefeZahl = -1; 
  if (pruefeZahl == -1) {
    alert("Altersangabe keine Zahl oder Sie müssen Älter wie 18 sein!"); //Ausgabe bei keiner Zahl oder bei Zahl unter 18
    document.Formular.Alter.focus();
    return false;
  }
}
</script>
</head>
<body>

<h1>Umfrageformular</h1>

<form name="Formular" action="" method="post" onSubmit="return umfrageFormular()">
<pre>
Vorname:  <input type="text" size="40" name="Vorname">
Nachname: <input type="text" size="40" name="Nachname">
Alter:    <input type="text" size="40" name="Alter">
Welcher Kandidat wäre Ihr Favorit? 
<select name="Kandidat" id="select">
<option value="Startwert">------</option>
<option value="Sie haben Kandidat1 gewaehlt">Kandidat1</option>
<option value="Sie haben Kandidat2 gewaehlt">Kandidat2</option>
<option value="Sie haben Kandidat3 gewaehlt">Kandidat3</option>
<option value="Sie haben Kandidat4 gewaehlt">Kandidat4</option>
</select>
<input type="submit" value="Absenden"><input type="reset" value="Abbrechen">
</pre>
</form>
</body>
</html>
 
Hi,

ich hab dir die fehlenden features mal dazugebastelt: #5028311 - Pastie
Dazu sei gesagt dass ich nicht wirklich was optimiert habe (Die Altersabfrage ein wenig). Wenn ich heute Abend eine freie Minute finde kann ich das Teil mal elegant nachbauen und es hier zur Verfügung stellen.

~cookie
 
Zurück
Oben