在HTML中,每个表单字段都需要一个name属性才能提交给服务器。但我使用dataTable来显示所有数据和分页。列表复选框只是获取当前页面的数据而不是获取下一页或上一页的数据。如何获取复选框的所有值?
模板中的
<input type="checkbox" name="orderId" value="{{ order_id }}" checked>
并在视图中:
order_list = request.POST.getlist('orderId')
答案 0 :(得分:1)
您可以使用包含字符串(逗号分隔值)的隐藏输入字段(隐藏类型),稍后可以将其作为字符串在服务器端接收,并使用split方法进行分割,这将导致所需的列表
<form>
<input id="result" type="hidden" name="result">
<!--your data table goes here-->
</form>
<script>
$(document).ready(function(){
var resultarray=[];
$('form input:checkbox').on('change', function(){
var orderValue=$(this).val();
// if string already available then remove(uncheck operation)
if(resultarray.indexOf(orderValue)!=-1)
{
resultarray.splice(resultarray.indexOf(orderValue), 1);
}
else
{
//if sting is not available then add(check operation)
resultarray.push(orderValue);
}
var text="";
for(x in resultarray)
{
text+=x+",";
//you may add an extra condition for not adding comma at last element
}
$("#result").val(text);
});
});