【问题标题】:Django Modelmultiplechoicefield Checkboxselectmultiple Problem Getting Selected CheckboxDjango Modelmultiplechoicefield Checkboxselectmultiple 获取选中复选框的问题
【发布时间】: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 的内容,因为它使用了一个查询集,它不显示选择,但我不知道如何得到它。

提前感谢您的任何想法。

【问题讨论】:

    标签: javascript jquery django django-forms django-templates


    【解决方案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);
              });
            });
            });
    

    【讨论】:

      猜你喜欢
      • 2018-08-02
      • 2013-03-31
      • 2019-02-22
      • 1970-01-01
      • 2016-05-20
      • 1970-01-01
      • 2017-01-08
      • 2012-03-19
      • 2011-10-26
      相关资源
      最近更新 更多