views:

241

answers:

1

I have an html form. When you click the button, a javascript function adds a new field. I'm trying to have the function also add a 'label' for the field as well.

I've tried using document.createElement("LABEL"), but that doesn't let me change the innerHtml (or maybe I'm doing it wrong..), nor add a closing

Here is my code. Thanks! var instance = 2;

  function newTextBox(element)
  {  
   instance++; 
   // Create new input field
   var newInput = document.createElement("INPUT");
   newInput.id = "text" + instance;
   newInput.name = "text" + instance;
   newInput.type = "text";
   instance++; 

   document.body.insertBefore(document.createElement("BR"), element);
   document.body.insertBefore(newInput, element);

  }
 </script>
</head>


<body>
 <LABEL for="text1">First name: </LABEL>
 <input id="text1" type="text" name="text1">
 <LABEL for="text2">Last name: </LABEL>
 <input id="text2" type="text" name="text2">



 <input type="button" id="btnAdd" value="New text box" onclick="newTextBox(this);" />
</body>

+1  A: 
   function newTextBox(element)
            {               
                    instance++; 
                    // Create new input field
                    var newInput = document.createElement("INPUT");
                    newInput.id = "text" + instance;
                    newInput.name = "text" + instance;
                    newInput.type = "text";

                    var label = document.createElement("Label");

                    label.for = "text" + instance;
                    label.innerHTML="Hello";
                    instance++; 

                    document.body.insertBefore(document.createElement("BR"), element);
                    document.body.insertBefore(newInput,element);
                    document.body.insertBefore(label, newInput);
Vincent Ramdhanie