Veröffentlicht 1. Juli 200421 j Ich will per Javascript die Anzahl der gewählten Options einer Liste prüfen. Wenn ich mit der Maus in die Liste klicke, die Taste gedrückt halte und dann mehrere Einträge selektiere, bekomme ich die Anzahl über onChange ausgegeben. Wenn ich aber die STRG-Taste gedrückt halte, um nicht zusammenhängende Einträge zu selektieren, wird onChange nicht aufgerufen? Welchen EventHandler muss ich denn nehmen, damit ich auch mit der STRG-Taste arbeiten kann?
1. Juli 200421 j hm du könntest zusätzlich zum onChange ein onKeyPress nehmen. Andererseits, könntest du auch nur mit onClick arbeiten...
1. Juli 200421 j Autor onClick hilft mir hierbei gar nicht. Aber zusätzlich mit onKeyPress funktioniert es. Na gut, soviel zum Thema Logik.
1. Juli 200421 j In JavaScript besitzt ein Option-Tag die Eigenschaft Selected. Du könntest also deine Liste in JS durchgehen und darauf prüfen wenn du es brauchst, nicht die beim Click merken das geklickt wurde. Wenn ich 2 mal auf eine Option klicke ist sie ja nicht mehr gewählt, oder wie fängst du das ab?
1. Juli 200421 j brauchst du die anzahl der markierten einträge zur laufzeit, oder beim abschicken eines formulars?
1. Juli 200421 j In JavaScript besitzt ein Option-Tag die Eigenschaft Selected. Du könntest also deine Liste in JS durchgehen und darauf prüfen wenn du es brauchst, nicht die beim Click merken das geklickt wurde. Wenn ich 2 mal auf eine Option klicke ist sie ja nicht mehr gewählt, oder wie fängst du das ab? das wäre natrülich auch eine gute möglichkeit. einfach per for-schleife durch die liste der optionen "loopen" und dabei einen zähler hochsetzen. am schluss den zähler zurückgeben und fertig. so müsstest du dir dann halt bei jedem aufruf die anzahl der markieren werte herausholen. du könntest auch ma nen stückel code posten
1. Juli 200421 j Autor <script type="text/javascript"> function checkCount(select){ var counter = 0; var items = new Array(); var i; for(i=0; i<select.options.length; i++){ if (select.options[i].selected) { counter++; items.push(i); } } if (counter > 5) { for(i=0; i<items.length; i++){ select.options[items[i]].selected = false; } return false; } } </script> // ... <select onchange="javascript:checkCount(this)"> [/PHP]
1. Juli 200421 j Autor Genau. Wie gesagt, jetzt funktioniert es auch so wie es soll. War ja nicht für mich, sondern für einen Kollegen von mir.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.