Avatar billede powerade Nybegynder
09. november 2007 - 10:37 Der er 11 kommentarer og
1 løsning

Opret felter dynamisk udfra tal i input felt

Hej,
jeg vil gerne oprette X antal input felter dynamisk i en html form, hvordan gør jeg det nemmest?

Jeg forestiller mig et simpelt input felt, med et onChange-kald til en JavaScript funktion, som så opretter det antal felter som man har valgt i input feltet. Alternativt kunne input-feltet også være en dropdown box.

Pft.
Avatar billede soerenlyn Nybegynder
09. november 2007 - 14:00 #1
<script type="text/javascript>
function createInput(obj){
  var elm;
  for(i=0;i<obj.value;i++){
      elm=document.createElement("input");
      elm.document.setAttribute("name","navn"+i);
      elm.document.setAttribute("type","text");
      obj.parentNode.appendChild(elm);
  }
}
</script>

<form>
<input type="text" onchange="createInput(this);">
</form>


Hvis man så skal kunne ændre flere gange vil der jo komme en masse felter, så du kan lægge dem ind i en <span>. Så bliver det istedet:

<script type="text/javascript>
function createInput(obj){
  var container=obj.parentNode.getElementsByTagName("span")[0];
  while(container.hasChildNodes) container.removeChild(container.firstChild);
  var elm;
  for(i=0;i<obj.value;i++){
      elm=document.createElement("input");
      elm.document.setAttribute("name","navn"+i);
      elm.document.setAttribute("type","text");
      obj.parentNode.appendChild(elm);
  }
}
</script>

<form>
<input type="text" onchange="createInput(this);">
<span></span>
</form>



Har ikke testet det - men prøv det :)
Avatar billede roenving Novice
09. november 2007 - 15:48 #2
-- du har i hvert fald nogle helt uforståelige document-ting med:

      elm.setAttribute("name","navn"+i);
Avatar billede soerenlyn Nybegynder
09. november 2007 - 17:05 #3
hovsa, jeg ved ikke hvorfor de kom der :P Tak.
Avatar billede powerade Nybegynder
09. november 2007 - 20:18 #4
Tillad mig lige at komme med et dumt spørgsmål. Men hvad er det jeg skal ændre for at slippe af med de uforståelige ting? :o)

Scriptet som det står i første kommentar virker ihvertfald ikke..
Avatar billede powerade Nybegynder
09. november 2007 - 20:21 #5
Ak - glemt det dumme spørgsmål - slog idet jeg postede det..

Smider i lige et svar begge to, så får i point.. ;)
Avatar billede powerade Nybegynder
09. november 2007 - 20:28 #6
Og så lige et tillægsspørgsmål - som det er nu, bliver felterne bare lagt derudaf efter hinanden, er der en nem måde at få den placeret på i kolonner f.eks.?
Avatar billede roenving Novice
10. november 2007 - 13:20 #7
Hvis du skal have dem i kolonner i en tabel, er det letteste at lave en startrække, og bruge den som template, som du så kloner og ændrer de relevante properties på !-)

-- husk bl.a. at hvis der skal events på felter eller celler, må de først sættes på _efter_ rækken er indsat i tabellen ...
Avatar billede soerenlyn Nybegynder
10. november 2007 - 15:41 #8
Skulle jeg lægge svar? Her kommer hvert fald et ..
Avatar billede powerade Nybegynder
12. november 2007 - 09:16 #9
Tak for jeres svar - roenving vil du ikke ha' del i pointene?
Avatar billede powerade Nybegynder
12. november 2007 - 13:43 #10
Jeg har oprettet et spørgsmål(http://www.eksperten.dk/spm/805443) i forlængelse af dette hvis i kan hjælpe med det.. ;)
Avatar billede roenving Novice
12. november 2007 - 13:53 #11
Nej tak, det må vist være soerenlyns !-)
Avatar billede soerenlyn Nybegynder
12. november 2007 - 18:56 #12
Takker :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester