Tanja: 2 Checkboxen müssen aktiviert sein - erst dann weiter

Hallo Leute,

normalerweise komme ich mit dem SELF HTML immer relativ eigenständig an mein Ziel - auch ohne riesige Kenntnisse zu besitzen - hier findet man ja immer tolle Beispiele und nach ein wenig "Bastellarbeit" hat bisher noch immer alles funktioniert :-)

Bei meinem aktuellen Problem benötige ich aber mal kompetente Hilfe :-D

Ich möchte das man auf einer Seite 2 Checkboxen aktivieren MUSS um dann erst über einen Button "Weiter" zur nächsten Seite zu gelangen.

Wenn nur eine (oder keine) der beiden Checkboxen inaktiv ist soll entweder:
a) auf der aktuellen Seite eine Fehlermeldung erscheinen
oder
b) auf eine neue weitere Seite mit Fehlermeldung verlinkt werden

So was ähnliches habe ich mir schonmal selbst gebaut mit 2 Radiobuttons - da musste dann nur eine Auswahl getroffen werden - dies hat auch funktioniert. Dort habe ich es so gelöst das bei Auswahl 1 zu einer PDF verlinkt wurde und bei Auswahl 2 eine andere Seite mit Fehlermeldung aufgerufen wurde. Also alles schon sehr nah dran... Dies war dann quasi meine "Arbeitsgrundlage" für mein aktuelles Checkbox Problem :-) Nur funktionieren will es nicht wirklich...

<html><head><title>Test</title>  
<script type="text/javascript">  
function Weiter () {  
  if (document.Testform.Art[0].checked == true) {  
    window.location.href = "../WICHTIGE-INFOS.pdf";  
  } else {  
    window.location.href = "../Testseite_mit_Fehlermeldung.html";  
  }  
}  
</script>  
</head><body>  
<form name="Testform" action="">  
<input type="checkbox" name="Art" value="1"> STIMME A ZU<br />  
<input type="checkbox" name="Art" value="2"> UND NATÜRLICH AUCH B  
<br><input type="button" value="weiter" onclick="Weiter()">  
</form>  
<script type="text/javascript">  
dhtml = false;  
if (document.layers || document.all || document.getElementById)  
  dhtml = true;  
if (dhtml == true && document.Testform.Art[0].defaultChecked == false)  
  document.Testform.Art[0].checked = true;  
</script>  
</body></html>

Gruß
Tanja

  1. Om nah hoo pez nyeetz, Tanja!

    ... und nach ein wenig "Bastellarbeit"

    Verwechsle nicht Bastelarbeit mit Pastellkreide ;-)

    Matthias

    --
    1/z ist kein Blatt Papier. http://www.billiger-im-urlaub.de/kreis_sw.gif
    1. Om nah hoo pez nyeetz, Tanja!

      Danke - dir auch Frieden im Herzen, Glück auf allen Wegen!

      ... und nach ein wenig "Bastellarbeit"

      Verwechsle nicht Bastelarbeit mit Pastellkreide ;-)

      Matthias

      Ich werde aufpassen ;-)

      Gruß
      Tanja

  2. servus Tanja,

    <input type="checkbox" name="Art" value="1"> STIMME A ZU<br />
    <input type="checkbox" name="Art" value="2"> UND NATÜRLICH AUCH B

    die beiden Checkboxen sollten verschiedene Namen haben, sonst wird nach dem Abschicken des Formulars der erste Wert vom zweiten überschrieben.
    Die beiden dann abfragen.. den Rest kannst du dir denken, denk ich.

    der wurzelbert

    --
    "I am punching your salad!!"
    1. Hallo wurzelbert,

      ich glaube ich habe es hinbekommen...

      <html><head><title>Test</title>  
      <script type="text/javascript">  
      function Weiter () {  
        if (document.Testform.A.checked == true && document.Testform.B.checked == true) {  
          window.location.href = "WICHTIGE-INFOS.pdf";  
        } else {  
          window.location.href = "Testseite_mit_Fehlermeldung.html";  
        }  
      }  
      </script>  
      </head><body>  
        
      <form name="Testform" action="">  
      <input type="checkbox" name="A" value="1"> STIMME A ZU<br />  
      <input type="checkbox" name="B" value="2"> UND NATÜRLICH AUCH B  
      <br><input type="button" value="weiter" onclick="Weiter()">  
      </form>  
      <script type="text/javascript">  
      dhtml = false;  
      if (document.layers || document.all || document.getElementById)  
        dhtml = true;  
      if (dhtml == true && document.Testform.A.defaultChecked == false &&  
        
      document.Testform.A.defaultChecked == false)  
        document.Testform.A.checked = true && document.Testform.B.checked = true;  
      </script>  
      </body></html>
      

      Werde das ganze jetzt mal noch testen ob es wirklich funktioniert - Lokal sieht es schonmal gut aus :-)

  3. @@Tanja:

    nuqneH

    Du kannst die Prüfung ohne JavaScript realisieren.

    Die zugehörigen Beschriftungen sollten anklickbar sein.

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. @@Tanja:

      nuqneH

      Du kannst die Prüfung ohne JavaScript realisieren.

      Die zugehörigen Beschriftungen sollten anklickbar sein.

      Qapla'

      Klingt interessant - schaue ich mir auf jeden Fall mal an! Danke!

  4. Hallo Leute,
    wollte mich nur mal wieder melden...

    Bin einen großen Schritt weiter allerdings habe ich jetzt noch ein paar Fragen. Also erstmal habe ich mich von der Idee verabschiedet auf eine weitere Seite zu verlinken sollte nur 1 bzw. 0 der Checkboxen aktiviert sein. Besser finde ich hier eine Infobox mit einer Nachricht. Diese habe ich jetzt auch eingebaut. Allerdings habe ich mir bei meinen Experimenten wohl irgendwie den Code zerschossen :-( Jetzt reicht es eine Checkbox zu aktivieren um weiter zu kommen... wieso !? HILFE!

    <html><head><title>Test</title>  
    <script type="text/javascript">  
    function Weiter () {  
      if (document.Abfrage.A.checked == true || document.Abfrage.B.checked == true) {  
        window.location.href = "INFO.pdf";  
      } else {  
        alert("Hinweis: Sie müssen beide Abfragen bestätigen!");  
      }  
    }  
    </script>  
    </head><body>  
      
    <form name="Abfrage" action="">  
      
    <input type="checkbox" name="A" value="1">Ja! Stimme A zu!.<br /><br />  
      
    <input type="checkbox" name="B" value="2">Ja! Stimme auch B zu!  
      
    <input type="button" value="weiter" onclick="Weiter()">  
      
    </form>  
      
    <script type="text/javascript">  
    dhtml = false;  
    if (document.layers || document.all || document.getElementById)  
      dhtml = true;  
    if (dhtml == true || document.Abfrage.A.defaultChecked == false ||  
      
    document.Abfrage.B.defaultChecked == false)  
      document.Abfrage.A.checked = true || document.Abfrage.B.checked = true;  
    </script>  
    </body></html>  
    
    

    Also wieso prüft er nur noch ob 1 Checkbox aktiviert ist (Frage1) und kann mir vielleicht jemand erklären was das Script im letzten Abschnitt macht (Frage2)?

    Gruß
    Tanja

    1. Hallo Tanja,

      ... Jetzt reicht es eine Checkbox zu aktivieren um weiter zu kommen... wieso !? HILFE!

      if (document.Abfrage.A.checked == true || document.Abfrage.B.checked == true) {

      du kennst den Unterschied zwischen || und && ?

      Gruß, Jürgen

      1. du kennst den Unterschied zwischen || und && ?

        Jetzt ja... :-/ Sorry... bzw. vielen Dank für den Anstupser :-)
        Mache gleich mal wieder einen Test. Melde mich dann nochmal!

    2. @@Tanja:

      nuqneH

      Bin einen großen Schritt weiter

      Weiter in der Sackgasse?

      if (document.Abfrage.A.checked == true || document.Abfrage.B.checked == true) {

      Die Vergleiche sind unnötig.

      if (dhtml == true || document.Abfrage.A.defaultChecked == false || document.Abfrage.B.defaultChecked == false)

      Dito. Der Negationsoperator existiert'!'.

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)