我有一个范围滑块作为表单的一个文件。我可以用js更新商品的价值。 但是,由于某些原因,无法发送复选框状态。
这是我的模板:
<form method="POST">
{% csrf_token %}
<table id="levels">
<label class="container">Easy
<input type="checkbox" name="checks" value="1">
<span class="checkmark"></span></label>
<!--you get the idea-->
</table>
<input type="range" min="1" max="120" value="120" class="form-control-range" id="time_slider">
<b> <span id="slider_value" ></span></b> min.
<input type="submit" id="update" name = "update" value="Filter">
</form>
<script>
var slider = document.getElementById("time_slider");
var output = document.getElementById("slider_value");
output.innerHTML = slider.value;
slider.oninput = function() {
output.innerHTML = this.value;
}
</script>
和我的view.py:
def item_list(request):
items = Items.objects.all()
if request.POST:
if 'update' in request.POST:
check_list = request.POST.getlist('checks')
time = request.POST.get('slider_value')
if check_list:
items=items.filter(level__in=check_list)
if time:
items=items.filter(time__lte=time)
如果我打印 check_list ,则所有复选框都将打勾。滑块反应灵敏,脚本有效,但没有值发送到我的视图。我得到的只是“无”。切换到 time_slider 也无济于事。我做错了什么?
答案 0 :(得分:0)
给范围输入名称属性。由于您已经在后端代码中检查 slider_valu ,因此可以将代码更改为:
<input name="slider_value" type="range" min="1" max="120" value="120" class="form-control-range" id="time_slider">