Radio-Buttons - Summe addieren und subtrahieren

Ein Hoffnungsschimmer dank Quaese :D

Hast du viel. noch einen Tip wie die Preise gleich am Anfang oder bei Refresh der Seite (also wenn ein Radio Button bereits auf checked="checked" steht)
im Gesamtpreis ausgewertet wird.

Vielen lieben Dank schon einmal...
Bin leider ein totaler Noop in sachen java,.. -.-
sorry für die Umstände,..

mit freundlichen Grüßen,
*Zenti

ps.: Kannst du mir ein gutes Javascript Buch zum Einsteigen zu empfehlen... finde das ganze sehr interessant und habe vor mich weiter in die Sache hinein zu denken.
 
Hi,

du musst im onload-Event des Dokuments die gewünschten Elemente durchlaufen und ermitteln, welches aktiv (checked) ist. Mit diesem als Argument rufst du die zugehörige Funktion auf.

Welche Elemente relevant sind, könntest du zum Beispiel in einem Array verwalten. Für jede "name-Gruppe" enthält dieses ein Objekt, bestehend aus dem Name und der zugehörigen Funktion.

Folgend ein Beispiel (die wichtigsten Infos entnimmst du den Kommentaren):
Code:
// Array bestehend aus Objekten
// Zu jeder name-Gruppe gehört ein Objekt bestehend aus:
// name - Zeichenkette, die ins name-Attribut eingetragen ist
// fx   - Funktion, die die name-Gruppe auswertet
//        (bekommt als Argument das gecheckte Objekt übergeben)
var arrChecked = [
  {name: 'domain', fx: math_radio},
  {name: 'admin', fx: math_radio},
  {name: 'checkbox_01', fx: math_checkbox},
  {name: 'checkbox_02', fx: math_checkbox},
  {name: 'checkbox_03', fx: math_checkbox}
];

window.onload = function(){
  // name-Gruppen-Array durchlaufen
  for(var i=0; i<arrChecked.length; i++){
    // Falls die Gruppe aus mehr als einem Objekt besteht
    if(document.Bestellung.elements[arrChecked[i].name].length > 1){
      // Alle Gruppen-Elemente durchlaufen
      for(var j=0; j<document.Bestellung.elements[arrChecked[i].name].length; j++){
        // Falls das aktuelle Element aktiv ist -> zugehörige Funktion aufrufen
        if(document.Bestellung.elements[arrChecked[i].name][j].checked){
          arrChecked[i].fx(document.Bestellung.elements[arrChecked[i].name][j]);
          break;
        }
      }
    }else{
      // Falls das Element aktiv ist -> zugehörige Funktion aufrufen
      if(document.Bestellung.elements[arrChecked[i].name].checked)
        arrChecked[i].fx(document.Bestellung.elements[arrChecked[i].name]);
    }
  }
}

Einen guten Einstieg in Sachen JS bietet in jedem Fall SelfHTML. Empfehlen kann ich zudem die openbooks JavaScript und JavaScript & Ajax von Galileo Computing.

Ciao
Quaese
 
So,.. nochmal herzlichen Dank Quaese
Ich hab jetzt alles so hinbekommen (dank dir) wie ich es mir vorgestellt habe..

mit freundlichen Grüßen,
*Zenti
 
Wenn du das planst öffentlich einzusetzen würde ich noch die "Regestrierung" in eine "Registrierung" umwandeln ;)
 
Ups... der Fehler passiert mir immer wieder xD
Danke für die Info..

Aber dieses Script war nur zum testen.
Das eigentliche Bestellsystem liegt auf einer anderen Seite :)

mit freundlichen Grüßen,
*Zenti
 
Zurück