• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Weiterleiten auf Seite per Radio Auswahl und Alerts

werkschu

New member
Hallo Leute,

ich möchte per Radio Auswahl auf eine Seite weiterleiten, wenn eine Radio Auswahl getroffen wurde und eine Checkbox checked ist.
Falls keine Radio Auswahl getroffen wurde und/oder die Checkbox nicht checked ist, soll der User per alert() informiert werden.

Leider funktioniert das Script noch nicht gewünscht da die Alerts jetzt in Schleife laufen, wo habe ich den Fehler gemacht ?

Grüße

Marcus

HTML:
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--

function radioWert(rObj)
 {
  for (var i=0; i<rObj.length; i++){
    if (rObj[i].checked){
     document.location.href = rObj[i].value;
     return;
    }


if (rObj[i].checked==false)
{ 
alert("Bitte eine Seite waehlen");
}

if (document.myForm.muss.checked==false)
{
alert("Bitte Checkbox abhaken");
}

  }
 
}
// -->
</script>
<form action="#" method="post" name="myForm">
<input type="radio" name="myRadio" value="http://www.seite.de/1.html">zur Auto Seite<BR/>
<input type="radio" name="myRadio" value="http://www.seite.de/2.html">zur Motorrad Seite<BR/>
<input type="radio" name="myRadio" value="http://www.seite.de/3.html">zur Traktor Seite<BR/><BR/>
<input name="muss" type="checkbox">
<input type="button" value="Absenden" onclick="radioWert(document.myForm.myRadio);">

</form>
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
Wenn Du die Schleife durchläufst und z. B. der zweite Radiobutton gecheckt ist, kommst Du beim ersten Durchlauf schon an die Stelle, wo Du den alert "Bitte eine Seite wählen" ausgibst, weil der erste Radiobutton ja nicht gecheckt ist.
Du musst erstmal die Schleife vollständig durchlaufen und prüfen, ob ein Radiobutton gecheckt ist, etwa so:
Code:
            function radioWert(rObj) {
              var checkd = false;
              var destination = "";
              for (var i=0; i<rObj.length; i++) {
                    if (rObj[i].checked) {
                        checkd = true;
                        destination = rObj[i].value;
                    }
              }
              if (!checkd) alert("Bitte eine Seite waehlen");
              else if (!document.myForm.muss.checked) alert("Bitte Checkbox abhaken");
              else document.location.href = destination;                          
            }
Tipp: Nicht nur die Struktur sondern auch der Ablauf wird klarer, wenn Du den Code sinnvoll einrückst.

Edit: Ohne Schleife könntest Du auskommen, wenn Du mit document.myForm.myRadio.value auf den Wert der Radiogruppe zugreifen würdest
 
Zuletzt bearbeitet:
Zurück
Oben