gpt4 book ai didi

Javascript不会在django的表单集隐藏输入字段中插入值

转载 作者:行者123 更新时间:2023-12-03 01:43:02 25 4
gpt4 key购买 nike

我正在尝试在表单集中的隐藏输入字段上传递值。然而,当我点击提交时,我什么也没得到:'form-0-my-field': ['']。谁能帮我解决这个问题吗?

这是我的表格:

class MyForm(forms.Form):
my_field = forms.CharField(widget=forms.HiddenInput(attrs={
'class': 'my_field'}))

表单集:

MyFormSet = formset_factory(MyForm, max_num=5)

View .py

def my_view(request):
if request.method == 'POST':
formset = MyFormSet(request.POST)
if formset.is_valid():
print(formset.cleaned_data)
else:
formset = MyFormSet()

return render(request, 'my_template.html', ctx={'formset': formset})

最后我的模板带有一个目标 my_field 的脚本:

{% for form in formset.forms %}
{% for field in form.visible_fields %}
{# Include the hidden fields in the form #}
{% if forloop.first %}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% endif %}
{{ field.errors.as_ul }}
{{ field }}
</td>
{% endfor %}
<button type="submit">Submit</button>

<script>
document.getElementsByClassName("my_field").value = "some str";
alert(document.getElementsByClassName("my_field").value);
</script>

最佳答案

类可以匹配多个元素。因此,document.getElementsByClassName 返回一个 HTMLCollection,即对象数组(请注意方法名称中的 s)。

要分配值,您需要引用集合中的项目:

document.getElementsByClassName("my_field")[0].value = "some str";

但是,您最好通过 ID 而不是类来执行此操作。

关于Javascript不会在django的表单集隐藏输入字段中插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50763232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com