Verbindung eines Radiobuttons mit einer Checkbox in Javascript

flytogether

Grünschnabel
Hallo
Seit mein Provider von Unix auf Linux umgestellt hat funktioniert das CGI Script nicht mehr weshalb ich mich nunmehr in Java-Script einarbeiten muss. Es hakt zur Zeit aber am Bestellformular:
Für eure Hilfe wäre ich sehr dankbar.

In dem Bestellformular sind vier Radiobuttons für die Zahlweise:
Radiobutton Nummer 1: Kostenlos
Radiobutton Nummer 2: SEPA Überweisung
Radiobutton Nummer 3: Paypal
Radiobutton Nummer 4: SEPA Lastschrift

Das Abfragen der Radiobuttons erfolgt fehlerfrei.

Der letzte Radiobutton regelt den SEPA-Einzug. Damit verbunden ist die "Ermächtigung", die mit der Checkbox als Pflichteingabe geprüft wird.

Die erste if-Anweisung funktioniert wie gesagt fehlerfrei.
Sobald ich die zweite Script-Anweisung einbinde, erhält der Absender einen alert ("bitte setzen Sie das Häkchen für die Ermächtigung der SEPA-Lastschrift". Er bekommt diesen alert auch, wenn er z.B. den Radiobutton "Kostenlos" gewählt hat (Und das ist unsinnig).

Ich suche die Verknüpfung, dass wenn Bankeinzug gewählt ist, der Absender auch die Ermächtigung anklicken muss.





Der Scrip sieht so aus:
Javascript:
 if (!(document.Formular.Zahlungsweise[0].checked || document.Formular.Zahlungsweise[1].checked || document.Formular.Zahlungsweise[2].checked || document.Formular.Zahlungsweise[3].checked)) {
 alert("Bitte teilen Sie mir mit, wie Sie zahlen möchten")
 return false;
 }

 if (!(document.Formular.Zahlungsweise[3].checked && document.Formular.Ermaechtigung_für_SEPA_Basislastschrift.checked)) {
 alert("bitte setzen Sie das Häkchen für die Autorisierung des SEPA-Lastschrift");
 document.Formular.Ermaechtigung_für_SEPA_Basislastschrift.focus();
 return false;
 }

if (document.Formular.Zahlungsweise[3].checked && document.Formular.Kontoinhaber.value == "") {
 alert("bitte den Namen des Kontoinhabers angeben");
 document.Formular.Kontoinhaber.focus();
 return false;
 }

 if (document.Formular.Zahlungsweise[3].checked && document.Formular.Strasse_Kontoinhaber.value == "") {
 alert("bitte Strasse des Kontoinhabers angeben");
 document.Formular.Strasse_Kontoinhaber.focus();
 return false;
 }
usw usf.

Der HTML Code sieht so aus:
HTML:
<html>
 <table border="0" rules=none cellpadding=1 cellspacing=0 bgcolor=silver>
 <tr>
 <td valign=top width=130 height=5 bgcolor=silver>
 <img width=70 border=0 src="blnk.gif"></td>
 <td valign=top width=30>
 <input type="radio" name="Zahlungsweise" value="kostenlose Lieferung">
 </td>
 <td valign=top width=1 height=5>&nbsp;
 </td>
 <td valign=top width=800 height=5 bgcolor=silver>
 <font face="Trebuchet MS" size=2>kostenlose Lieferung</font>
 </td>
 </tr>

 <tr>
 <td valign=top width=130 height=5 bgcolor=silver>
 <img width=70 border=0 src="bilder bestellformular/sepa_logo.jpg"></td>
 <td valign=top width=30>
 <input type="radio" name="Zahlungsweise" value="Vorauskasse per Banküberweisung">
 </td>
 <td valign=top width=1 height=5>&nbsp;
 </td>
 <td valign=top width=800 height=5 bgcolor=silver>
 <font face="Trebuchet MS" size=2>Vorauskasse per Banküberweisung</font>
 </td>
 </tr>

 <tr>
 <td valign=top width=130 height=5 bgcolor=silver>
 <img width=70 border=0 src="bilder bestellformular/paypal.png"></td>

 <td valign=top width=30>
 <input type="radio" name="Zahlungsweise" value="Vorauskasse per Paypal">
 </td>
 <td valign=top width=1 height=5>&nbsp;
 </td>
 <td valign=top width=800 height=5 bgcolor=silver>
 <font face="Trebuchet MS" size=2>Vorauskasse</font>
 </td>
 </tr>

 <tr>
 <td valign=top width=130 height=5 bgcolor=silver>
 <img width=70 border=0 src="bilder bestellformular/sepa_logo.jpg">
 </td>

 <td valign=top width=30>
 <input type="radio" name="Zahlungsweise" value="SEPA Bankeinzug">
 </td>
 <td valign=top width=1 height=5>&nbsp;
 </td>
 <td valign=top width=800 height=5 bgcolor=silver>
 <font face="Trebuchet MS" size=2>SEPA-Basis-Lastschrift</font>
 </td>
 </tr>

 <tr>
 <td valign=top width=130 height=5 bgcolor=silver>&nbsp;
 </td>
 <td valign=top width=30>
 <input type="checkbox" name="Ermaechtigung_für_SEPA_Basislastschrift" value="">
 </td>
 <td valign=top width=1 height=5>&nbsp;
 </td>
 <td width=800><font face="Trebuchet MS" size=2>
 Ich ermächtige ......</font>
 </td>
 </tr>
 </table>
</html>
 
Zuletzt bearbeitet von einem Moderator:
Zeilenweise Code der nicht formatiert ist! Da tun mir schon beim kurzen Hinschauen die Augen weh.

Setzte deinen Code in die entsprechenden Code-Tags damit er lesbar ist. Dann schaue ich es mir nochmal an und versuche dir zu helfen.
 
Hallo tombe,
Vielen Dank für deine rasche Antwort. Jetzt hast du einen Frischling verunsichert denn ich weiß nicht so recht was du meinst. Ich habe im HTML-Teil nun den Anfangstag <html> und den Endtag </html> eingefügt und hoffe das war dein Anliegen. Schönen Abend wünsch ich dir.
 
Ist nicht so ganz das was ich gemeint habe.

Lies dir mal bitte durch was auf dieser Seite geschrieben steht. Damit kannst du z.B. HTML-Code so formatieren das Tags farblich hervorgehoben werden und alles somit lesbarer wird.

Sieht dann beispielsweise so aus:

HTML:
<div id="text" style="width: 100px;">Hier steht Text</div>

Du musst bei deinem Beitrag die "<" und ">" am Anfang und am Ende einfach durch "[" und "]" ersetzen dann passt es.
 
Ok, ich habe es wohl trotz der fehlenden Formatierung gefunden.

Javascript:
if (document.Formular.Zahlungsweise[3].checked && !(document.Formular.Ermaechtigung_fuer_SEPA_Basislastschrift.checked)) {
    alert("bitte setzen Sie das Häkchen für die Autorisierung des SEPA-Lastschrift");
    document.Formular.Ermaechtigung_fuer_SEPA_Basislastschrift.focus();
    return false;
}

Was ich auch noch geändert habe, ist die Bezeichnung "Ermaechtigung_für_SEPA_Basislastschrift" in "Ermaechtigung_fuer_SEPA_Basislastschrift". Ob es direkt was ausmacht weiß ich nicht aber Probleme kann es damit sicher geben.
 
Guten Morgen tombe.
Jetzt funktioniert alles. Vielen herzlichen Dank. Und nun werde ich mich darum kümmern müssen was ihr hier im Forum mit der Formatierung meint und warum das so wichtig ist. Anfängerfehler halt! War noch nie in einem Forum.
Ich wünsch dir einen schönen Tag.
Gruß flytogether
 
Hi,
Quellcode in Codeblocks zu schreiben ist deshalb so wichtig weil dieser dann entsprechend formatiert wird.
Dies kannst du in deinem Erstbeitrag sehen.

Codeblocks stehen in unserem Forum für sehr viele Programmiersprachen zur Verfügung wie Javascript, HTML, CSS, Java etc. geschrieben werden diese in BBCode [Name].
Die am meisten verwendeten findest du unter diesen Icons: Bildschirmfoto 2014-01-23 um 18.59.11.jpg

Viele Grüße
 

Neue Beiträge

Zurück