簡體   English   中英

復選框輸入僅在選中時提交

[英]checkbox inputs are only submitted when is checked

這是我的第一個 Django 項目 我有這個簡單的表格,我想提交所有行值(選中或未選中),我面臨的錯誤是它只發送row{num}值,如果它被選中。

 <script> function calc(elemId) { var elem = document.getElementsByName(elemId)[0]; if (elem.checked) { elem.value = 1; } else { elem.value = 0; } } </script> <div class="container pt-3"> <form action="." method="post"> <table class="table table-hover"> <thead> <tr> <th scope="col">#</th> <th scope="col">Keyword</th> <th scope="col">seller_items</th> <th scope="col">Total</th> <th scope="col">checked</th> </tr> </thead> {% csrf_token %} {{ form|crispy }} {%for i in data%} <tr > <th scope="row">{{forloop.counter}}</th> <td>{{i.keyword}}</td> <td>{{i.seller_items}}</td> <td>{{i.total_found}}</td> <td> {% if i.checked %} <input type="checkbox" name="row{{i.id}}" value="1" checked="checked" onclick="calc('row{{i.id}}')"/> {%else%} <input type="checkbox" name="row{{i.id}}" value="0" onclick="calc('row{{i.id}}')"/> {%endif%} </td> </tr> {% endfor %} </table> <div class="row"> <div class="col-12"> <button class="btn btn-primary float-right" type="submit">Update</button> </div> </div> </form>

按下按鈕時提交表單,但發布請求中只有選中的框行

這是網絡瀏覽器的預期行為。 如果該復選框不是 False,則不會發送任何數據。 如果它是 True 'on' 將被發送。

在清理表單時,Django 會自動將 cleaned_data 值設置為 False(如果不存在)並處理數據爭論。

檢查這個答案: https://stackoverflow.com/a/1992745/14091199

您可以放置一個與不會被選中的復選框同名的隱藏輸入。 隱藏輸入始終成功並發送到服務器,但如果選中該復選框,它將覆蓋隱藏輸入。

<form>
    <input type='hidden' value='0' name='selfdestruct'>
    <input type='checkbox' value='1' name='selfdestruct'>
</form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM