Suds
Suds

Reputation: 37

Create Checkbox with Javascript

I am trying to create a checkbox with javascript when a button is clicked. I am really struggling, I have searched the net for help and this is the closest I've got but it does not work.

What have I done wrong?

<p>Click the buttons to create a Checkbox.</p>

<button onclick="addCheckBox()">Create a button</button>
<input id="check" name="checkBoxes">
<script>
function addCheckBox() {

    var ColorsAvailable = document.getElementById('checkBoxes');
    var check_value = new Array( )
    check_value[0] = "Yellow"
    check_value[1] = "Red"
    check_value[2] = "Green"


   for(var count in check_value)
    {
      var color=document.createElement("input");   
      color.value=(check_value[count] + '</br>');
      color.type="checkbox";
      color.id="color" + count;
      ColorsAvailable.appendChild(color);
   }
}

</script>

Upvotes: 2

Views: 7660

Answers (3)

Ivan86
Ivan86

Reputation: 5708

After you add an element that has an id of checkBoxes and some semicolons ; the code actually works.

function addCheckBox() {

    var ColorsAvailable = document.getElementById('checkBoxes');
    var check_value = new Array();
    check_value[0] = "Yellow";
    check_value[1] = "Red";
    check_value[2] = "Green";

    var color, p, br;

   for(var count in check_value)
    {
      color=document.createElement("input");   
      color.value=(check_value[count] + '</br>');
      color.type="checkbox";
      color.id="color" + count;
      p =document.createElement("span");
      p.innerHTML = check_value[count] + ": ";
      br =document.createElement("br");
      ColorsAvailable.appendChild(p);
      ColorsAvailable.appendChild(color);
      ColorsAvailable.appendChild(br);
   }
}
input[type='checkbox']
{
   margin-right:20px;
}
<p>Click the buttons to create a Checkbox.</p>

<button onclick="addCheckBox()">Create a button</button>
<input id="check" name="checkBoxes">

<div id="checkBoxes"></div>

Upvotes: 2

mdatsev
mdatsev

Reputation: 3879

The id of the input was check and not checkBoxes. I changed it and also you can't directly append in the input so I made it append in the parent node but you could change to be on another place.

<p>Click the buttons to create a Checkbox.</p>

<button onclick="addCheckBox()">Create a button</button>
<input id="checkBoxes" name="checkBoxes">
<script>
function addCheckBox() {

    var ColorsAvailable = document.getElementById('checkBoxes');
    var check_value = new Array( )
    check_value[0] = "Yellow"
    check_value[1] = "Red"
    check_value[2] = "Green"


   for(var count in check_value)
    {
      var color=document.createElement("input");   
      color.value=(check_value[count] + '</br>');
      color.type="checkbox";
      color.id="color" + count;
      ColorsAvailable.parentNode.appendChild(color);
   }
}

</script>

Upvotes: 1

Ctznkane525
Ctznkane525

Reputation: 7465

Make checkboxes a DIV.

<div id="check" name="checkBoxes"></div>

and change this

var ColorsAvailable = document.getElementById('check');

Upvotes: 0

Related Questions