Checkboxen Windows-Explorer-like mit Ctrl / Shift markieren?
Bambi
- javascript
Hallo Ihr
Ich habe ein umfangreiches Formular, in welchem die Datensätze aus einer Datenbank tabellenförmig aufgelistet werden. Um einen oder mehrere Datensätze bearbeiten zu können, verfügt jede Zeile über eine Checkbox.
Ich hab schon über Javascript ermöglicht, dass ich über Buttons alle Checkboxen auswählen, die Auswahl löschen oder umkehren kann.
Nun wäre es für den Arbeitsfluss genial, wenn ich so Windows-Explorer-like mehrere aufeinander folgende Zeilen (bzw. Checkboxen) über die Shift-Taste auswählen könnte. Also: eine Checkbox aktivieren und dann mit gedrückter Shift-Taste eine Checkbox 10 Zeilen unterhalb markieren --> alle Checkboxen dazwischen werden ebenfalls selektiert.
Ist so was möglich mit Javascript? Könnt Ihr mir evtl. ein paar Tipps geben, wie ich das in Angriff nehmen könnte?
Hier mal meine bisherigen Javascript-Funktionen:
function checkAll(formname,fieldname)
{
var checkboxes = document.forms["" + formname + ""].elements["" + fieldname + "[]"];
for (var i=0;i<checkboxes.length;i++)
{
checkboxes[i].checked = true;
}
}
function uncheckAll(formname,fieldname)
{
var checkboxes = document.forms["" + formname + ""].elements["" + fieldname + "[]"];
for (var i=0;i<checkboxes.length;i++)
{
checkboxes[i].checked = false;
}
}
function changecheckAll(formname,fieldname)
{
var checkboxes = document.forms["" + formname + ""].elements["" + fieldname + "[]"];
for (var i=0;i<checkboxes.length;i++)
{
if (checkboxes[i].checked == true) { checkboxes[i].checked = false; }
else if (checkboxes[i].checked == false) { checkboxes[i].checked = true; }
}
}
Der Aufruf erfolgt dann über die folgenden Links:
<a href="#" onclick="checkAll('fuploadtab','read_id');">Alle auswählen</a>
<a href="#" onclick="uncheckAll('fuploadtab','read_id');">Auswahl löschen</a>
<a href="#" onclick="changecheckAll('fuploadtab','read_id');">Auswahl umkehren</a>
Bin mal wieder für jeden Hinweis dankbar! :-)
Liebe Grüsse, Bambi
Hi,
Nun wäre es für den Arbeitsfluss genial, wenn ich so Windows-Explorer-like mehrere aufeinander folgende Zeilen (bzw. Checkboxen) über die Shift-Taste auswählen könnte. Also: eine Checkbox aktivieren und dann mit gedrückter Shift-Taste eine Checkbox 10 Zeilen unterhalb markieren --> alle Checkboxen dazwischen werden ebenfalls selektiert.
Ist so was möglich mit Javascript? Könnt Ihr mir evtl. ein paar Tipps geben, wie ich das in Angriff nehmen könnte?
Wie man gedrueckte Tasten in Erfahrung bringt, ist beim Event-Objekt beschrieben.
Und sich die "vorherige" Checkbox bei onClick oder onChange zu merken, sollte ja kein grosses Problem darstellen (aktuellen Zustand beachten).
Und dann von Startcheckbox bis Endcheckbox alle in einer Schleife abzugrasen, sollte auch nicht allzu kompliziert sein. Zur Not durchlaeuft man halt alle in Frage kommenden, und vergleicht jeweils die Referenzen.
MfG ChrisB
Hi ChrisB
Danke für die Gedankenanstösse! Ich werde morgen mal versuchen, das zu realisieren.
Und sich die "vorherige" Checkbox bei onClick oder onChange zu merken, sollte ja kein grosses Problem darstellen (aktuellen Zustand beachten).
Naja, für mich ist das erst mal schon ein mittelgrosses Problem, aber ich werde morgen mal googeln...
Nochmals vielen Dank und LG
Bambi