我整天都在努力尝试在Django表单的一组复选框上获取选定的值,并将选定的值仅复制到表单上的同一复选框。如果用户单击下面定义的form.author中的复选框,我希望在下面定义的form.favorite_author上自动选中相同的复选框。
我已经尝试过此处记录的JQuery方法... Copy Selected Checkbox Value From One Checkbox To Another Immediately Using JQUERY,但到目前为止还没有运气。我最近开始使用Modelmultiplechoicefield和表单本身内的checkboxselectmultiple参数探索一种途径。据我所知,当我使用JQuery并尝试在表单上选中一个框时,该值以未定义的形式返回,这很可能就是它没有将复选框选择传播到另一个复选框的原因。
这是我的表格。...
Class 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的信息,因为它使用了查询集,但没有显示选择内容,但是我不知道该怎么做。
预先感谢您的任何想法。
答案 0 :(得分:0)
结合这个问题中的另一个问题,我回到了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);
});
});
});