【发布时间】:2020-11-28 07:39:52
【问题描述】:
forms.py
>class MyForm(forms.ModelForm):
AVAILABLE_OPTIONS = [
('a', 'a'),
('b', 'b'),
('c', 'c'),
]
options = forms.MultipleChoiceField(
......
widget=forms.CheckboxSelectMultiple(),
choices=AVAILABLE_OPTIONS,
)
JavaScript
....
var my_array = []
var options = document.querySelectorAll('input[name=options]:checked');
....
我想要什么:
<QueryDict: {'csrfmiddlewaretoken': ....., 'options': ['a', 'b', 'c', ....], ......}>
打印 request.POST 时得到的结果
<QueryDict: {........, 'options': ['[object NodeList]'], .....}>
当我遍历 options 和 my_array.push(options[i].value) 时,我得到以下信息,并且表单不起作用,因为它是 1 个值,而不是多个值。
<QueryDict: {........, 'options': ['a, b, c'], .....}>
我做错了什么??
谢谢!
【问题讨论】:
-
使用
FormData对象可能会使您的代码更简单一些? developer.mozilla.org/en-US/docs/Web/API/FormData/… -
抱歉,还是不行。我继续得到的是
NodeList。我知道这不是一个数组,所以我什至尝试了new Array(),但这也不起作用。 -
您能分享发出 POST 请求的其余代码吗?
-
感谢您的帮助,但我只是想通了。
标签: javascript arrays django ajax django-forms