Django Modelmultiplechoicefield复选框selectmultiple问题获取选中复选框

时间:2018-09-28 01:39:18

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

我整天都在努力尝试在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的信息,因为它使用了查询集,但没有显示选择内容,但是我不知道该怎么做。

预先感谢您的任何想法。

1 个答案:

答案 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);
          });
        });
        });