Avatar billede bgjensen Nybegynder
26. oktober 2005 - 10:23 Der er 3 kommentarer og
1 løsning

opret dynamiske text bokse

jeg har brug fot at kunne oprette nogle tekst bokse, som kun er der hvis brugeren ønsker dem, her er hvad jeg har indtil videre:

<script language=javascript>
function nyfarve(){
  document.form.farve2.type='text';
  document.form.farve2.value=document.form.farve1.value;
  document.form.farve1.value='';
}
</script>

<input type="hidden" size="25" name="farve2" value="">
<input type="text" size="25" name="farve1" value="">
<input type="button" name="xtrafarve" value="Tilføj Farve" onClick="nyfarve();">

men hvordan kommer jeg videre så man kan smide en farve3, og farve4 på. Stadigvæk kun med en button, altså så javascriptet selv ved hvor man er kommet til? Håber i forstår :)

Og tænkte yderligere på om man kan lave den så man ikke er afhænig af det antal hiddens jeg vælger at kode altså så de bliver oprettet med javascript.
Avatar billede softspot Forsker
26. oktober 2005 - 11:09 #1
Jeg har flikket denne testform sammen, som demonstrerer hvordan det kan gøres. jeg håber du kan udtrække de relevante teknikker fra denne:

<html>
  <head>
    <title>testDynHtml</title>
    <script type="text/javascript">
      function getNumControls(frm, name) {
        var ctls = frm.elements;
        var cnt = 0;
        for(var i=0; i < ctls.length; i++) {
          cnt += ctls[i].getAttribute("name").substr(0,name.length) == name ? 1 : 0;
        }
        return cnt;
      }
      function addText(objCtl) {
        var dyn = document.getElementById("dynamic");
        if(dyn) {
          var obj = document.createElement("input");
          obj.setAttribute("name", "farve" + getNumControls(objCtl.form,"farve"));
          obj.setAttribute("type", "text");
          dyn.appendChild(obj);
               
          obj = document.createElement("br");
          dyn.appendChild(obj);
        }
      }
    </script>
  </head>
  <body>

    <form method="get" runat="server">
      <input type="button" name="addtxt" value="ny tekst" onclick="addText(this)">
      <input type="submit" name="send" value="send"><br><br>
      <div id="dynamic"></div>
    </form>
   
  </body>
</html>
Avatar billede bgjensen Nybegynder
26. oktober 2005 - 11:43 #2
takker præcis hvad jeg skulle bruge smid et svar :)
Avatar billede softspot Forsker
26. oktober 2005 - 11:55 #3
Velbekomme :)
Avatar billede softspot Forsker
26. oktober 2005 - 15:53 #4
Tak for point :)
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