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 获取选中复选框的问题的主要内容,如果未能解决你的问题,请参考以下文章

Django之路

Django系列

django 错误

mac电脑安装django ,运行django报错解决

Django 大神带你飞系列~走进Django

django的文档