Ergebnis 1 bis 10 von 10

Thema: Validator: Wenn Bankeinzug, dann Kontodaten

  1. #1
    TP-Junior
    Registriert seit
    Jul 2010
    Ort
    Frankfurt
    Beiträge
    16

    Validator: Wenn Bankeinzug, dann Kontodaten

    Hallo liebes Forum,

    ich habe ein Formular, das ich mit dem jQuery Validator pr�fen lasse. Es funktioniert auch alles hervorragend, bis auf eine Kleinigkeit:

    Ich m�chte die Eingaben der Kontodaten (Nummer, BLZ und Inhaber) als Pflichfeld deklarieren, wenn der Radio Button "Bankeinzug" aktiviert ist.

    Nach meinen Recherchen scheint das auch relativ einfach m�glich zu sein, aber ein wirklich passendes Beispiel f�r meinen Fall habe ich nicht gefunden. Auch das adaptieren auf meinen Fall bekomme ich nicht hin, denn ich bin einfach zu bl�d, Javascript zu schreiben.

    Folgenden Inhalt soll mein JS haben:

    wenn radiobutton mit ID "be" is checked, dann mache aus den Inputfeldern mit dem Namen "best_konto" und "best_blz" und "best_inhaber" ein Pflichtfeld(required). Mit ein bi�chen Misch-Masch aus meinem PHP-Know-How w�rde ich folgenden Ansatz w�hlen, der jedoch im Syntax sicher total falsch ist:

    HTML-Code:
    					if('#be'=true){
    						best_konto: {
    							required: true;
    						}
    						best_blz: {
    							required: true;
    						}
    						best_bank: {
    							required: true;
    						}
    					};
    Kann mir dabei jemand bei der �bersetzung in "Javascriptisch" helfen?

    Danke im voraus und liebe Gr��e
    Petra

  2. #2
    TP-Senior
    Registriert seit
    Sep 2010
    Beiträge
    144
    Schick mal dein HTML Code das ich weiß wie die Input Felder heißen etc ;-)
    grüße,
    euer pidd

  3. #3
    TP-Junior
    Registriert seit
    Jul 2010
    Ort
    Frankfurt
    Beiträge
    16
    Das Formular besteht aus unzähligen Feldern. Nachfolgend der Teil des Formulars, um den es geht:

    HTML-Code:
    <form id="best_form" action="best_process.php" method="post">
    <fieldset><legend>Zahlungsweise</legend>
    			<input class="radio" type="radio" name="best_zahlart" value="Rechnung" checked><label for="best_zahlart">&nbsp;&nbsp;Rechnung</label>
    			<input class="radio" type="radio" name="best_zahlart" value="Vorauskasse"><label for="best_zahlart">&nbsp;&nbsp;Vorauskasse</label>
    			<input id="be" class="radio" type="radio" name="best_zahlart" value="Bankeinzug"><label for="best_zahlart">&nbsp;&nbsp;Bankeinzug</label><br /><br />
    			<p>Die Zahlungsweise <strong>Bankeinzug</strong> erfordert zusätzlich die Angabe der Bankverbindung:</p>
    			<label class="feldname" for="best_konto">Kontonummer </label><input type="text" name="best_konto" size="40" /><br />
    			<label class="feldname" for="best_blz">Bankleitzahl </label><input type="text" name="best_blz" size="40" /><br />
    			<label class="feldname" for="best_bank">Name der Bank</label><input type="text" name="best_bank" size="40" /><br />
    		</fieldset>
    			<input class="button" type="submit" value="Buch bestellen" />	
    			<a class="button" href="javascript:history.go(-2)">Abbrechen</a>
    Ich hoffe, es hilft weiter.

    Viele Grüße
    Petra

  4. #4
    TP-Senior
    Registriert seit
    Sep 2010
    Beiträge
    144
    HTML-Code:
    if ($('#be:checked')) {
      $('#best_konto').attr('required', 'required'); 
      $('#best_blz').attr('required', 'required'); 
    }else{
      $('#best_konto').removeAttr('required'); 
      $('#best_blz').removeAttr('required'); 
    }
    Vorrausgesetzt du gibst den inputfeldern noch die IDs mit dass du sie auch ansprechen kannst...
    habs nich getestet aber das sollte eiiigentlich klappen
    grüße,
    euer pidd

  5. #5
    TP-Junior
    Registriert seit
    Jul 2010
    Ort
    Frankfurt
    Beiträge
    16
    Hallo Pidd,

    es funktioniert leider nicht.

    Ginge das vielleicht nicht auch mit dem Aufruf einer Funktion bei onclick im Radiobutton Bankeinzug?

    Ich habe es jetzt so probiert (im Headbereich):
    HTML-Code:
    <script type="text/javascript">
      function chkBE() {
    	document.best_form.best_konto.className('required');
    	document.best_form.best_blz.className('required');
    	document.best_form.best_bank.className('required');
      }
    </script>
    Und mein Input-Feld sieht jetzt so aus:
    HTML-Code:
    <input id="be" onClick="return chkBE()" class="radio" type="radio" name="best_zahlart" value="Bankeinzug" />
    Die zu verändernden Input Felder sind die folgenden:
    HTML-Code:
    <input id="best_konto" class="" type="text" name="best_konto" size="40" /><br />
    <input id="best_blz" type="text" class="" name="best_blz" size="40" /><br />
    <input id="best_bank" type="text" class="" name="best_bank" size="40" /><br />
    Es hat mich irgendwie nicht überrascht, daß es ebenfalls nicht funktioniert hat

    Frustige Grüße
    Petra

  6. #6
    TP-Senior
    Registriert seit
    Sep 2010
    Beiträge
    144
    http://jsfiddle.net/dUEJH/1/

    Nur noch etwas anpassen un vóila
    Geändert von pidd (14.11.2011 um 22:24 Uhr)
    grüße,
    euer pidd

  7. #7
    TP-Junior
    Registriert seit
    Jul 2010
    Ort
    Frankfurt
    Beiträge
    16
    Vielen Dank für die ganze Mühe, und doch...es tut mir leid, aber es funktioniert immer noch nicht.

    Kann es sein, daß es an "attr" liegt. Es muss class="required" werden. Wird es dies mit attr?

    Aber wenn es daran liegen würde, dann würde ja zumindest der value erscheinen, aber auch das tut es nicht.

    Kann es an der jQuery-Version liegen? Hier habe ich 1.3.2 verwendet?

    Platzieren muß ich es doch im Head-Bereich, oder? Ich habe es sowohl innerhalb der document ready Funktion als auch außerhalb versucht. Beides ging nicht.

    Ich finde auch keinen Fehler bei den ID-Bezeichnungen.

    Meinen letzten Versuch findet man: Formular (Bitte auf "Einverstanden" klicken - passiert nix, außer daß dann das betreffende Formular sichtbar wird)

    Was mache ich nur falsch....

    Grüße
    Petra

  8. #8
    TP-Senior
    Registriert seit
    Sep 2010
    Beiträge
    144
    Deshalb sagte ich "anpassen" wenn du nicht das attribut brauchst machst du halt aus attr addClass('required') und aus removeAttr eben removeClass

    Du solltest schon meist die aktuelle version von jquery nehmen..
    Und vorallem dich mal einlesrn ;-)
    grüße,
    euer pidd

  9. #9
    TP-Junior
    Registriert seit
    Jul 2010
    Ort
    Frankfurt
    Beiträge
    16
    Es ist echt frustrierend, wenn man stundenlang Dokumentationen und Foren liest, ebenso viele Stunden rumprobiert und wegen einer Kleinigkeit ums verplatzen nicht weiterkommt. Wendet man sich als letztes Mittel dann an ein Forum, bekommt man zwar Hilfe, aber nicht ohne einen kleinen Seitenhieb. Dabei lebt doch ein Forum von den Alltagsproblemchen beim Umsetzen.

    Ich habe es übrigens immer noch keine Lösung. Es wird nun zwar die Klasse hinzugefügt, jedoch nicht die Fehlermeldung berücksichtigt. Nachdem ich nun zwei weitere Stunden gesucht habe, gebe ich wirklich und wahrhaft entnervt auf.

  10. #10
    TP-Junior
    Registriert seit
    Jul 2010
    Ort
    Frankfurt
    Beiträge
    16
    Ich habe jetzt die Lösung gefunden und ganz nach dem jQuery Prinzip ist es auch sehr kurz.
    HTML-Code:
    <script type="text/javascript">
      $(document).ready(function() {
         $("#best_form").validate(
    	{
    	  messages: {
       	    best_menge:"Bitte geben Sie eine Anzahl an",
       	    best_vorname:"Bitte geben Sie Ihren Vornamen an",
    	    best_name: "Bitte geben Sie Ihren Namen an",
    	    best_email: {
    		required: "Bitte geben Sie eine gültige Email-Adresse an",
    		email: "Die Email-Adresse muß gültig sein"
    	    },
    	    best_ort:"Bitte geben Sie PLZ und Ort an",	
    	    best_strasse: "Bitte geben Sie Ihre Strasse an",
    	    best_agb:"Sie müssen die AGBs bestätigen",
    	    best_konto:"Bitte geben Sie Ihre Kontonummer an",
    	    best_blz:"Bitte ergänzen Sie die Bankleitzahl",
    	    best_bank:"Sie müssen den Namen der Bank angeben"
    	},
    	rules: {
    	  best_konto: {
    	    required: "#be:checked"
    	  },
    	  best_blz: {
    	    required: "#be:checked"
              },
    	  best_bank: {
    	    required: "#be:checked"
    	  }
    	}
          }
        );
      });			
    </script>
    Einzig den Block Rules: mußte ich zu meinem ursprünglichen Text hinzufügen und der Radio-Button Bankeinzug muß natürlich nicht nur einen Namen (der für alle Radiobuttons ja gleich ist) zugewiesen bekommen, sondern auch eine ID, in diesem Fall id="be".

    Ich hoffe, daß es jemandem weiterhilft, der ähnlich auf dem Schlauch steht, wie ich es tat.

    Viele Grüße
    Petra

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. [Allgemein] wenn Button1 ist belegt dann Button 2
    Von Pascal Hofmann im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 30.05.2012, 11:28
  2. [PHP] Check, ob Flash, wenn nicht dann tue dies
    Von Zer0 im Forum Traum-Dynamik
    Antworten: 5
    Letzter Beitrag: 16.10.2009, 15:22
  3. Wenn ihr eure Kiste neu aufsetzt, dann sichert ihr...
    Von Schneeschaufel im Forum Einfach so ...
    Antworten: 17
    Letzter Beitrag: 04.10.2006, 16:37
  4. Wenn das stimmt, na dann ...
    Von Leon im Forum Einfach so ...
    Antworten: 6
    Letzter Beitrag: 24.02.2006, 16:54
  5. wenn Browser geschlossen wird dann...
    Von hnes im Forum Traum-Dynamik
    Antworten: 1
    Letzter Beitrag: 30.09.2002, 12:09

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51