Thomas Meinike: Array-index

Beitrag lesen

Hallo,

ehrlichgesagt, ich steh etwas auf dem Schlauch. Ich will ja nur wissen, das wievielte Element im id[]-Array momentan verändert wird.

Der folgende am genannten Beispiel orientierte Code vergibt dynamisch IDs fuer die mit "id[]" benannten Felder und fragt dann den jeweils am Ende der ID enthaltene Zahlenwert ab:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test by TM 10/04</title>
<script language="JavaScript" type="text/javascript">
<!--

var dom=false,ie=false,idfragment="test";

function Init()
{
  var f,inputs,i=0,j=0;
  f=document.getElementById("formular");
  inputs=f.getElementsByTagName("input");

for(i=0;i<inputs.length;i++)
  {
    if(inputs.item(i).name="id[]")
    {
      inputs.item(i).id=idfragment+j;
      j++;
    }
  }

if(f.addEventListener)
  {
    dom=true;
    f.addEventListener("change",CheckChange,true);
  }
  else if(f.attachEvent)
  {
    ie=true;
    for(i=0;i<f.childNodes.length;i++)if(f.childNodes.item(i).nodeName.toLowerCase()=="input")f.childNodes.item(i).attachEvent("onchange",CheckChange);
  }
}

function CheckChange(event)
{
  if(dom)alert("Ereignis kam von Element\n"+event.target.nodeName.toLowerCase()+" mit name=""+event.target.name+"" Index: "+event.target.id.substring(idfragment.length));
  else if(ie)alert("Ereignis kam von Element\n"+event.srcElement.nodeName.toLowerCase()+" mit name=""+event.srcElement.name+"" Index: "+event.srcElement.id.substring(idfragment.length));
}

//-->
</script>
</head>
<body onload="Init()">
<form id="formular" action="">
<input type="text" name="id[]">
<input type="text" name="id[]">
<input type="text" name="id[]">
<input type="text" name="id[]">
<input type="text" name="id[]">
</form>
</body>
</html>

MfG, Thomas