Bambi: Checkboxen Windows-Explorer-like mit Ctrl / Shift markieren?

Beitrag lesen

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&auml;hlen</a>  
<a href="#" onclick="uncheckAll('fuploadtab','read_id');">Auswahl l&ouml;schen</a>  
<a href="#" onclick="changecheckAll('fuploadtab','read_id');">Auswahl umkehren</a>  

Bin mal wieder für jeden Hinweis dankbar! :-)

Liebe Grüsse, Bambi