label not working with checkbox

Solution 1:

I believe the label element links to the id attribute, not the name attribute. Try this:

<form>
  <input type="checkbox" name="showRatings" id="showRatings" value="1" checked>
  <label for="showRatings">Show Ratings</label>
</form>

Reference here.

Solution 2:

When input element is inside the label then we do not need id on the element and 'for' attribute on the label, but when it is outside we need it.

<label>
    Foo
    <input name="foo" type="checkbox" />
</label>

Clicking on "Foo" will trigger a toggle of the checkbox