Checkbox

BitBurger

Mitglied
Hi,

da ich momentan bei meinem Projekt das selbe benötigt habe, war ich sehr froh so schnell eine vernünftige lösung zu finden. Leider ist mir nun etwas später aufgefallen, das das script bei mir einen kleinen fehler hat. Bei mir werden ebenfalls die checkboxen automatisch generiert (nach einer Suchfunktion). Werden jetzt mehrere Treffer angezeigt, funktioniert es super, ist es jedoch nur einer, funktioniert gar nichts. Woran könnte das liegen?

Code:
function CheckboxChecked(apForm, apCheckbox)
{
  Checkbox = window.document.forms[apForm].elements[apCheckbox];

  for (i=0; i<Checkbox.length; i++)
  {
    if (Checkbox[i].checked)
    {
      return true;
    }
  }
  return false;
}
//----------------------------------------------------------------------------------------------
function detail(apForm, apCheckbox)
{
  if (CheckboxChecked(apForm, apCheckbox))
  {
    document.ap_result.target = "_blank";
    document.ap_result.action = "ap_detail.php";
    document.ap_result.submit();
  }
}
Aufruf:

HTML:
<input type=\"Button\" name=\"ap_result_submit\" value=\"detail\" title=\"Show the detail of the selected results\" onClick=\"detail('ap_result', 'ap_result_id[]');\">


über hilfe würde ich mich echt freuen.

MFG

BitBurger
 
Ich nehme mal an, du testest im IE... im FF bspw. besteht dieses Problem nicht, wenn ich mich recht entsinne...:

Im IE wird ein Array von Formularelementen nur angelegt, wenn mehrere mit dem selben Namen existieren....existiert nur eine, ist kein Array vorhanden, was den Fehler verursacht.

Abhilfe: greife auf die Checkboxes mit der DOM-Methode getElementsByName() zu... da existiert immer ein Array.
 
Erstmal vielen Dank an dich Sven.

Das war genau das was ich gesucht hatte. Jedoch ist dieser fehler bei mir auch mit dem FF aufgetaucht.. naja jetzt tuts endlich. Nochmals Danke.:p

Code:
function CheckboxChecked(apCheckbox)
{
  for (i=0; i<document.getElementsByName(apCheckbox).length; i++)
  {
    if (document.getElementsByName(apCheckbox)[i].checked)
    {
      return true;
    }
  }
  return false;
}
//----------------------------------------------------------------------------------------------
function detail(apCheckbox)
{
  if (CheckboxChecked(apCheckbox))
  {
    document.ap_result.target = "_blank";
    document.ap_result.action = "ap_detail.php";
    document.ap_result.submit();
  }
}
 

Neue Beiträge

Zurück