Make Checkboxs submit a zero value when not checked

Checkboxes normally don't submit a value when they submitted in a form and they are not checked. This code makes a hidden input have a value which is coupled to the checkbox check state, the hidden input will always deliver a value when the form is submitted.

by Ben Clayton

HTML

<button class='submit'>Submit</button>
<form id='myform'>
    <input type="checkbox" class="checkbox"/>
    <input type="textbox" name="chkA" value="0"/>
    <br />    

   
    <input type="checkbox" class="checkbox" checked='checked'/>
    <input type="textbox" name="chkB" value="1" />

</form>

JavaScript

$(document).ready(function(){
    $(document).on('click','.submit',function(){
           alert($('#myform').serialize());
    });
    
    
    $(document).on('change','.checkbox',function(){
         $(this).next().val($(this).is(':checked')?1:0);       
    });
    
});