Hallo zusammen,
ich möchte die Anzahl von Checkboxen limitieren, bzw. deren Übergabewert maximieren. Kleines Bsp.:
Nun möchte ich gerne die Auswahl auf z.B. max. 4 Boxen und/oder einem Übergabewert von max. 15 begrenzen.
!Wichtig!
Zusätzlich muß name=’’ aus dem String ‚WPF[xxx]‘ bestehen, wobei sich ‚xxx‘ (Typ: Integer) und der jeweilige Wert (Typ: float) bei jedem Aufruf der Seite verändern. Die Seiten werden mit PHP generiert.
Zusätzlich würde ich gerne die Summe der Werte (Typ: float) der markierten Kästchen der Aufzählung als Wert anzeigen.
Wie kann ich das mit wenig JavaScript-Erfahrung programmieren.
Vielen Dank für Eure Hilfe
Clemens
Hallo Clemens,
nun bin ich aber schon verdutzt. Du generierst die Seite (also den HTML-Code) mit PHP und willst danach noch einen Code mit JavaScript generieren, dessen Werte aus bekannten PHP Werten besteht? Wieso generierst Du dann nicht gleich alles mit PHP, da hast Du doch alles, musst nicht mit JavaScript rumbastelnt und die Fehleranalyse ist auch einfacher.
Gruß
Christian
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Lösung
Hallo, Clemens!
JavaScript hat den Vorteil, nicht erst auf dem Server zu passieren, und den Nachteil, eine zweite Hochzeit zu feiern. Viel Spaß beim Tanzen.
Ich habe die Funktionen in meinen Quellcode etwas aufwändig - dafür aber sehr strukturiert - gestaltet, damit Du ihn besser verstehst. Viele Zeilen sind gleich, so dass man den Code kompakter gestalten kann. Aber so kannst Du die drei Funktionen „anzahl“, „summe“ und „max“ einzeln testen. Überschaubare if-Anweisungen habe ich in eine Zeile geschrieben, das kriegst Du sicher wieder hin.
Gruß, Martin.
Untitled Document
function test()
{
anzahl();
summe();
max();
}
function anzahl()
{
var a=0;
for(i=0; i<document.form1.length; i++)
{if(document.form1.elements[i].checked){a=a+1;}}
if(a>4){alert(‚Genug!\nBitte nur 4 Kreuzchen!‘);}
}
function summe()
{
b=0;
for(i=0; i<document.form1.length; i++)
{
if(document.form1.elements[i].checked)
{b=b+parseInt(document.form1.elements[i].value);}
}
document.form1.summe.value=b;
}
function max()
{
c=0;
d=15;
for(i=0; i<document.form1.length; i++)
{
if(document.form1.elements[i].checked)
{c=c+parseInt(document.form1.elements[i].value);}
}
if(c>=d)
{alert(‚Genug!\nSie dürfen nicht noch mehr auswählen!‘);}
}
Meine Checkboxen:
Nr1
Nr2
Nr3
Nr4
Nr5
Nr6
Summe der Werte der angeklickten Checkboxen: