Homepage selbermachen 7.852 Themen, 35.619 Beiträge

Auswertung Optionsfelder.

hexagon / 9 Antworten / Baumansicht Nickles

Hallo Leute,


wenn Ihr jetzt denkt der Hexagon hat nicht mehr alle Tassen im Schrank, gebe ich Euch im vollem Umfang Recht. Ich möchte nur 2 Optionsfelder in einer HTML Datei per JavaScript auswerten. Es wird aber garnichts ausgewertet. Der JavaScript gibt keine Alertbox von sich, egal welches Optionsfeld man anklickt und auch keine Fehlermeldung.


 


Dazu als Auszug mein Problem:


 


<html>


<head>


<title>geht nicht</title>


<script language="JavaScript">


<!--


function chkFormular()


{


 if(document.Formular.hinweis.value == "nein")


  {


   alert("Sie müssen den Hinweis akzeptieren");


   return false;


  }


}


//-->


</script>


</head>


<body>


http://www.servername.de/bla/bla/auswertung.php" method="post" onSubmit="return chkFormular()">

  <p><input type="radio" value="ja" name="hinweis">Ja</p>


  <p><input type="radio" value="nein" checked name="hinweis">Nein<p>


  <p><input type="submit" value="Abschicken"><input type="reset" value="Zurücksetzen"></p>


</form>


</body>


</html>


 


Gedacht hatte ich mir, dass die Variabele „hinweis“ einmal „ja“ oder „nein“ annimmt. Ich möchte den User dazu zwingen, mit einem Klick die Variabele „hinweis“ auf „ja“ zu setzen. Beim Versenden wird dann durch den JavaScript eine Auswertung vorgenommen. Ist die genannte Variabele „nein“, soll keine Sendung zu http://www.servername.de/bla/bla/auswertung.php stattfinden. Ist die Variabele „ja“, soll gesendet werden.


 


Bitte helft mir noch mal ;-))


 


Mit freundlichen Grüßen. Hexagon


 

bei Antwort benachrichtigen
Borlander hexagon „Auswertung Optionsfelder.“
Optionen

Hallo Hex,
hab jetzt doch noch ein Beispiel gefunden:
http://selfhtml.teamone.de/javascript/objekte/anzeige/elements_checked.htm

Das Problem bei Deinem Script scheint darin zu liegen das es sich um Radio-Buttons handelt und somit mehrere Elemente den selben Namen haben.
Ich probiere das gerade noch mal mit Deinem Script aus...

Gruß
Borlander

bei Antwort benachrichtigen
Borlander hexagon „Auswertung Optionsfelder.“
Optionen

Damit sollte es funktionieren:

function chkFormular()
{
  if(document.Formular.hinweis[1].checked)
  /* Achtung: "Nein" muss der 2. Radio-Button sein (Index=1), bei veränderter Reihenfolge entsprechend anpassen */
  {
    alert("Sie müssen den Hinweis akzeptieren");
    return false;
  }
}
bei Antwort benachrichtigen
Rheinlaender hexagon „Auswertung Optionsfelder.“
Optionen

@Hexagon: nur falls das oben Dein Original-Code ist - im schliessenden </p>-tag Deines Nein-Buttons fehlt der slash. Aber viel wichtiger:
@Borlander: muss es nicht heissen
if(document.Formular.hinweis[1].checked == true) oder alternativ
if(document.Formular.hinweis[1].checked == 1)?
Oder ist das eine gültige Kurzschreibweise?

Gruß
Rheinlaender

bei Antwort benachrichtigen
Zaphod Rheinlaender „@Hexagon: nur falls das oben Dein Original-Code ist - im schliessenden -tag...“
Optionen

Borlanders Schreibweise prüft doch schon auf "true" - wenn nicht, versagt die Bedingung "checked" ;-). "== true" ist redunant.
Borlander hat den Code brigens gestern abend getestet. bevor er gepostet hat - wir haben im CHat über das Problem gesprochen.
Du hast wohl niemals in C ne Endlosschleife (natürlich mit Abbruchbedingung in der Schleife) mit while(1) gemacht ;-)

HTH, Z.

bei Antwort benachrichtigen
Rheinlaender Zaphod „Borlanders Schreibweise prüft doch schon auf true - wenn nicht, versagt die...“
Optionen

Nee, mit while(1) nicht, mit Abbruchbedingung auch nicht, und gewollt schon gar nicht, aber sonst sind mir Endlosschleifen nicht ganz unbekannt. ;-)
Tja, man lernt halt nie aus...

bei Antwort benachrichtigen
hexagon Nachtrag zu: „Auswertung Optionsfelder.“
Optionen

Hallo,
des Rätsels Lösung war das Posting von Borlander. Ich habe daraus gelernt, dass man mit der genannten Abfrage nicht die Variabele abfragen kann sondern nur welches Optionsfeld gewählt wurde.Dabei frage ich mich, warum eine Variabele bei jedem Optionsfeld mitgeschleppt wird, wenn man damit sowieso nichts anfangen kann. Da bleibt mein logischer Sachverstand auf der Strecke.

Recht schönen Dank an alle Beteiligten wie Borlander, Rheinlaender und Zaphod! Euer Support war mir eine große Hilfe.

MfG. Hexagon

bei Antwort benachrichtigen
Borlander hexagon „Danke!“
Optionen
Dabei frage ich mich, warum eine Variabele bei jedem Optionsfeld mitgeschleppt wird, wenn man damit sowieso nichts anfangen kann.
Die für jedes Formularfeld angegebene Variable wird beim Absenden des Formulars als Wert der Radio-Group übermittelt - ein Deinem Fall bekommt das Script auf dem Server also die Variable hinweis mit dem Wert ja oder nein.

dass man mit der genannten Abfrage nicht die Variabele abfragen kann sondern nur welches Optionsfeld gewählt wurde.
Mit document.Formular.hinweis[n].value kannst Du auch den Wert des n-ten Optionsfeldes abfragen - evtl. könnte man mit einer For-Schleife sogar direkt nach den Rückhabewert überprüfen...


CU Borlander
bei Antwort benachrichtigen
xafford Borlander „ Die für jedes Formularfeld angegebene Variable wird beim Absenden des...“
Optionen

Sorry für die Einmischung, aber document.Formular.hinweis[n].value ist nicht ganz zukunftssicher, da dies die alte document.all Syntax des IE ist. Besser ist es mit der DOM-Syntax (zumindest zusätzlich) zu arbeiten.
document.forms[0].option[n].value
oder document.getElementById("hinweis").item(n).value

PS: n bezeichnet das n+1. Objekt, da n bei 0 startet ;o)

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Borlander xafford „Sorry für die Einmischung, aber document.Formular.hinweis n .value ist nicht...“
Optionen
Sorry für die Einmischung
Dafür musst Du Dich nicht entschuldigen, bin für hilfreiche Korrekturen immer dankbar...
bei Antwort benachrichtigen