Here’s how you add a group of textboxes on your form at design time.
<html> <head> <title>Add Checkboxes</title> </head> <body> <input type="checkbox" id="pencil" value="pencil" name="products" /> <label for="pencil">pencil</label> <br /> <input type="checkbox" id="eraser" value="eraser" name=" products" /> <label for="eraser">eraser</label> </body> </html>
👇 You will get a result like this...
Create Checkboxes Dynamically
Now let’s make a similar form with dynamically created checkboxes using values from a textbox. The textbox will provide values for the checkboxes and its labels. Therefore, I also need to create labels dynamically in my script.
I have two input boxes of type text and button. Clicking the button will call a function named createChk(), with a parameter (the textbox id).
<html> <head> <title>Add Checkbox Dynamically using JavaScript</title> </head> <body> Enter a Value <input type="text" id="prod" autofocus /> <p> <input type="button" id="bt" value="Create Checkbox" onclick="createChk(prod)" /> </p> <p id="container"></p> </body> <script> var i = 1; // COUNTER, FOR CHECKBOX ID. function createChk(obj) { if (obj.value !== '') { var chk = document.createElement('input'); // CREATE CHECK BOX. chk.setAttribute('type', 'checkbox'); // SPECIFY THE TYPE OF ELEMENT. chk.setAttribute('id', 'prodName' + i); // SET UNIQUE ID. chk.setAttribute('value', obj.value); chk.setAttribute('name', 'products'); var lbl = document.createElement('label'); // CREATE LABEL. lbl.setAttribute('for', 'prodName' + i); // CREATE A TEXT NODE AND APPEND IT TO THE LABEL. lbl.appendChild(document.createTextNode(obj.value)); // APPEND THE NEWLY CREATED CHECKBOX AND LABEL TO THE <p> ELEMENT. container.appendChild(chk); container.appendChild(lbl); obj.value = ''; document.getElementById(obj.id).focus(); i = i + 1; } } </script> </html>
👉 How to add checkbox to a Table cell using plain JavaScript
The function createChk() takes a parameter as the object. Clicking the button on form will call this function with a parameter, which is the textbox. Using the object reference, I can extract the value and other properties.
👉 This example is also useful... How to check if checkbox is checked or not using only JavaScript
I am also creating a label each to display the checkbox name. Without the label, you’ll only see a square box. To add the name to the label, I am using document.createTextNode() method to create a text node and appending it as a child to the label.
lbl.appendChild(document.createTextNode(obj.value));
However, you can also use the innerHTML property to assign value to the label.
lbl.innerHTML = obj.value;