![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
|
Frank Bur schrieb: zu einem produkt kann es mehrere preisgruppen geben. nach auslesen der db werden also dynamisch soviele radiobuttons(in gruppe) erzeugt, wie es preisgruppen gibt. man soll nun eine preisgruppe per radio selectieren können, gleichzeitig soll das jeweils zu diesem radio gehörende textfeld aktiviert(standardmäßig stehen sie auf 'disabled'), und alle anderen textfelder deselectiert werden. momentan ist die anzahl auf drei preisgruppen max beschränkt. mein ansatz hierzu ist folgender: ... function aktiviere_TF() { Es ware einfacher die Funktion mit einer Referenz auf das Form oder das aufrufende Objekt selber aufzurufen, dann bist Du wesentlich flexibler. (s.u.) if (document.forms["cart_add"].elements["preisgruppe"][0].checked == true) { qty1.aktivieren(); .........^^^^Wo ist das definiert? Woher soll JavaScript wissen, dass Du das Form-Element namens "qty1" meinst? qty2.deaktivieren(); qty3.deaktivieren(); } else if (document.forms["cart_add"].elements["preisgruppe"][1].checked == true) { qty2.aktivieren(); qty1.deaktivieren(); qty3.deaktivieren(); } else if (document.forms["cart_add"].elements["preisgruppe"][2].checked == true) { qty3.aktivieren(); qty2.deaktivieren(); qty1.deaktivieren(); } } ein kleiner auszug des templates: Ich hab das mal auf das wesentliche gekuerzt, das naechst mal bitte selber machen. Du erleichterst uns damit das debuggen. Sollte es mal beim besten Willen nicht zu kuerzen sein, das ganze online stellen und hier nur die URL posten. Auch hierbei gilt: Ein augenfreundlicher Quelltext motiviert! input type="radio" name="preisgruppe" value="preisgruppe2" onclick="aktiviere_TF()" Hier waere ein Aufruf mit aktiviere_TF(this) oder aktiviere_TF(this.form) wesentlich eleganter. input type="text" size="4" name="qty2" value="" disabled allerdings funktioniert das so nicht, der IE meldet mir: 'documents.forms.cart_add.elements ist NULL oder kein objekt' Du kennst http://glasgoogle.de/ zwecks brauchbarer Fehlermeldungen? Insgesamt halte ich Deine Vorgehensweise fuer auesserst wartungsunfreundlich. 1. Du kannst die Anzahl der Radios einer Gruppe mit document.nameDesForm.nameDesRadio.length bestimmen. Schon mal eine Variable, um die Du Dir keinen Kopf machen musst. 2. Eine Uebergabe des aufrufendes Objekts an die Funktion macht das ganze flexibler. 3. Wenn Du die Textfelder ebenfalls gleich benamst, kannst Du mit Hilfe des Index des Radio das passende Textfeld ansprechen. 4. Ich wuerde bei jeder Aktion eine Schleife ueber alle Radios laufen lassen und jeweils "disabled" den gegenteiligen Wert von "checked" geben: pseudocode for(i=0;i<radios.length;i++) textfeld[i].disabled=!radios[i].checked; /pseudocode btw: Deine Texte werden durch die sinnvolle Verwendung von Grossbuchstaben wesentlich _leser_freundlicher! -- http://www.geocities.com/SoHo/Bistro/9813/ - Photogallery (JavaScript) http://www.fotocommunity.de/pc/pc.php4?mypics=1631 - more Photos |
#2
| |||
| |||
|
|
Aber sonst gehts Dir noch gut? Erstens ist Dein Signaturtrenner falsch, da fehlt das Leerzeichen, zweitens fehlt die eigentliche Nachricht, drittens zitiert man nicht komplett, sondern ausschließlich die relevanten Stellen, auf welche man sich bezieht, viertens hängt man das Zitat nicht an, sondern stellt es dem Kommentar zum Zitat voran, fünftens verwendet man Groß/Kleinschreibung, sechtens, wenn man nichts zu sagen hat, dann hält man die Klappe und schweigt dankbar. Der Kandidat hat 0 von 6 Punkten. Setzen! |
![]() |
| Thread Tools | |
| Display Modes | |
| |