HighDots Forums  

Re: [Newbie] dynamische radios sollen korrespondierende textfelder aktivieren

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Re: [Newbie] dynamische radios sollen korrespondierende textfelder aktivieren in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Frank Bur
 
Posts: n/a

Default Re: [Newbie] dynamische radios sollen korrespondierende textfelder aktivieren - 08-13-2003 , 09:58 AM








--
....der weg ist das ziel...
"Steffen Laubner" <steffen.laubner (AT) gmx (DOT) de> schrieb im Newsbeitrag
news:bhb7iv$vuqof$1 (AT) ID-46137 (DOT) news.uni-berlin.de...
Quote:
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



Reply With Quote
  #2  
Old   
Frank Bur
 
Posts: n/a

Default Re: [Newbie] dynamische radios sollen korrespondierende textfelder aktivieren - 08-13-2003 , 10:33 AM






Hallo Georg,

Quote:
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!
Ich bitte vielmals um Entschuldigung, keine Ahnung, wie das passieren
konnte. War DEFINITIV kein wirklich gewolltes posting von mir.

Sorry,
frank




Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.