简体   繁体   中英

Html Checkbox, multiple with same 'name'. Value 1 if checked, Value 0 if not checked

On my page i have a table which includes an 'add row' button, so a user can add more rows if they desire. The row is added by cloning the last row in the table. Within the row I would like to put two checkboxs.

<td class = ''> <input class = '' type='checkbox' name ='installed_by_cm' value='1'/>  </td>
<td class = ''> <input class = '' type='checkbox' name ='installed_after_cm' value='1'/>  </td>

This means that there is multiple checkboxes with the same 'name' tag, something that i require for my data handling later in the code. I use flasks request.form.getlist() to obtain the information in the python backend.

Since the checkbox type default is none and i can not use a hidden input as it will always be collected by the request, I am unable to find a way to make the checkbox send a 1 when checked and a 0 when not checked. Any help would be greatly appriciated.

Simplest one, no javascript required, just put a hidden input before the checkbox:

<input type="hidden" name="check[0]" value="0" />
<input type="checkbox" name="check[0]" value="1" />

Inputs need to have the same name. If the checkbox is checked then value 1 will be submitted, otherwise value 0 from the hidden input.

Your case javascript solution, no hidden inputs needed:

<script type="text/javascript">
    // when page is ready
    $(document).ready(function() {
         // on form submit
        $("#form").on('submit', function() {
            // to each unchecked checkbox
            $(this + 'input[type=checkbox]:not(:checked)').each(function () {
                // set value 0 and check it
                $(this).attr('checked', true).val(0);
            });
        })
    })
</script>

<form method="post" id="form">
    <input type="checkbox" name="check[0]" value="1" />
    <input type="checkbox" name="check[1]" value="1" />
    <input type="submit" value="Save Changes" />
</form>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM