Hej!
Jeg forsøger at opdatere options i en select i en dynamisk form.
Ideen er, at brugeren selv kan tilføje linjer i formen, og den del virker. Men det betyder, at formelementerne har nye navne og ID for hver linje der bliver tilføjet. Det giver forhåbentlig mening her:
-  <form name="customForm">
 -  <div id="dynamicInput">
 -  <p>
 -  <select name="hovedfelt1" onchange="updatechoices(delfelt1, this.value);" style="width:150px;">
 -    <option>Vælg hovedfelt</option>
 -    <option>Titelfelt</option>
 -    <option>Materialetype</option>
 -    <option>Forfatterfelt</option>
 -  </select>
 -  <select name="delfelt1" id="delfelt1" style="width:150px;"></select>
 -  <input type="text" name="datafelt1" /></p>
 -  </div>
 -  <p><input type="button" value="Tilføj linje" onClick="addInput('dynamicInput');" /></p>
 -  </form>
 
og javascript:
-  function updatechoices(objLine, choice)
 -  {
 -      if(choice == "Titelfelt")
 -      {
 -          document.customForm.getElementById(objLine).options[0]=new Option("Hovedtitel", "hovedtitel", true, false);
 -          document.customForm.getElementById(objLine).options[1]=new Option("Undertitel", "undertitel", false, false);
 -      }
 -      else if(choice == "Forfatterfelt")
 -      {
 -          document.customForm.getElementById(objLine).options[0]=new Option("Fornavn(e)", "fornavn", true, false);
 -          document.customForm.getElementById(objLine).options[1]=new Option("Efternavn", "efternavn", false, false);
 -          document.customForm.getElementById(objLine).options[2]=new Option("født d.", "birth", false, false);
 -      }
 -  }
 -  
 -  var counter = 1;
 -  var limit = 15;
 -  function addInput(divName){
 -       if (counter == limit)  {
 -            alert("Du kan ikke tilføje flere linjer.");
 -       }
 -       else {
 -            var newdiv = document.createElement('div');
 -            newdiv.innerHTML = "<p><select name='hovedfelt" + (counter + 1) + "' onchange='updatechoices(delfelt" + (counter + 1) + ", this.value);' style='width:150px;'><option>Vælg hovedfelt</option><option>Titelfelt</option><option>Materialetype</option><option>Forfatterfelt</option></select> <select name='delfelt" + (counter + 1) + "' id='delfelt" + (counter + 1) + "' style='width:150px;'></select> <input type='text' name='datafelt" + (counter + 1) + "' />";
 -            document.getElementById(divName).appendChild(newdiv);
 -            counter++;
 -       }
 -  }
 
Hvis jeg bytter getElementById(objLine) ud med den enkelte linjes egentlige id/navn virker det. Men fordi formen er dynamisk, vil jeg gerne kunne bruge getElementById(), så jeg kan identificere hver felt for hver linje.
Nogen forslag?