Django Modelmultiplechoicefield Checkboxselectmultiple 获取选中复选框的问题
Posted
技术标签:
【中文标题】Django Modelmultiplechoicefield Checkboxselectmultiple 获取选中复选框的问题【英文标题】:Django Modelmultiplechoicefield Checkboxselectmultiple Problem Getting Selected Checkbox 【发布时间】:2019-03-03 23:14:33 【问题描述】:我整天都在努力尝试在我的 Django 表单上的一组复选框上获取选定的值,并将选定的值仅复制到我的表单上的相同复选框中。如果用户单击下面定义的 form.author 中的复选框,我希望在下面定义的 form.favorite_author 上自动选中相同的复选框。
我已经尝试过这里记录的 JQuery 方法...Copy Selected Checkbox Value From One Checkbox To Another Immediately Using JQUERY 但到目前为止还没有运气。我最近开始探索在表单本身中使用 Modelmultiplechoicefield 和 checkboxselectmultiple 参数的途径。据我所知,当我使用 JQuery 并尝试选中表单上的一个框时,该值返回为未定义,这很可能是它没有将复选框选择传播到另一个复选框的原因。
这是我的表格......
类ManagerUpdateNewAssociateForm(forms.ModelForm):
class Meta:
model = Library
self.fields['author'] = forms.ModelMultipleChoiceField(
widget=forms.CheckboxSelectMultiple(),
queryset=Books.objects.all()
self.fields['favorite_author'] = forms.ModelMultipleChoiceField(
widget=forms.CheckboxSelectMultiple(),
queryset=Books.objects.all()
我的 html...
<div class="spacer83">
form.author
</div>
<div class="spacer83">
form.favorite_author
</div>
当我尝试跟踪 JQuery 时,它告诉我复选框选择未定义。我确实读过一些关于 Modelmultiplechoicefield 的内容,因为它使用了一个查询集,它不显示选择,但我不知道如何得到它。
提前感谢您的任何想法。
【问题讨论】:
【参考方案1】:结合本期中包含的其他问题,我又回到了JQuery的路线,进一步探索。据我所知,由于在此用例中生成 Django 表单的 HTML 的方式,我无法使用该类进行输入。我最终能够利用输入名称,然后使用下面的代码来相应地询问复选框:
$(document).ready(function()
$("[name=author]").change(function()
let selectedValA = $(this).val();
let isAChecked = $(this).prop("checked");
$(`[name=favorite_author][value="$selectedValA"]`).prop("checked", isAChecked);
);
);
);
【讨论】:
以上是关于Django Modelmultiplechoicefield Checkboxselectmultiple 获取选中复选框的问题的主要内容,如果未能解决你的问题,请参考以下文章