使用自定义multiselect jQuery框在Django中提交MultipleChiceField

使用自定义multiselect jQuery框在Django中提交MultipleChiceField,jquery,html,django,jquery-multiselect,multiplechoicefield,Jquery,Html,Django,Jquery Multiselect,Multiplechoicefield,我正在尝试使用jQuery插件提交一个多选字段来呈现多选 我的表格如下: class BackupForm(forms.Form): def __init__(self, *args, **kwargs): self.user = kwargs.pop('user', None) super(BackupForm, self).__init__(*args, **kwargs) self.fields['contas_choice'] =

我正在尝试使用jQuery插件提交一个多选字段来呈现多选

我的表格如下:

class BackupForm(forms.Form):
    def __init__(self, *args, **kwargs):
        self.user = kwargs.pop('user', None)
        super(BackupForm, self).__init__(*args, **kwargs)
        self.fields['contas_choice'] = forms.MultipleChoiceField(
            choices=get_backup_choices(self.user)
        )

        for field in self.fields:
            self.fields[field].widget.attrs.update({'class': 'form-control', })

        self.fields['contas_choice'].widget.attrs.update(
            {
                'name': 'from[]',
                'id': 'search',
                'class': 'form-control',
                'size': '8',
                'multiple': 'multiple',
            }
        )

    contas_choice = forms.MultipleChoiceField(required=False)
    # other fields
在我的模板上:

<form action="" class="form-horizontal" method="post">{% csrf_token %}
    <div class="row">
        <div class="col-xs-5">
            {% for choice in form.contas_choice %}
                {{ choice }}
            {% endfor %}
        </div>

        <div class="col-xs-2">
            <button type="button" id="search_rightAll" class="btn btn-block"><i
                    class="glyphicon glyphicon-forward"></i></button>
            <button type="button" id="search_rightSelected" class="btn btn-block"><i
                    class="glyphicon glyphicon-chevron-right"></i></button>
            <button type="button" id="search_leftSelected" class="btn btn-block"><i
                    class="glyphicon glyphicon-chevron-left"></i></button>
            <button type="button" id="search_leftAll" class="btn btn-block"><i
                    class="glyphicon glyphicon-backward"></i></button>
        </div>

        <div class="col-xs-5">
            <select name="to[]" id="search_to" class="form-control" size="8" multiple="multiple"></select>
        </div>
    </div>
    <div id="actions" class="row">
        <div class="col-md-12">
            <button type="submit" class="btn btn-primary">Baixar</button>
            <a href="/listar-contas/" class="btn btn-default">Cancelar</a>
        </div>
    </div>
</form>
{%csrf\u令牌%}
{form.contas_choice%}中的选项为%
{{choice}}
{%endfor%}
拜克斯
这会像我想要的那样呈现select字段,就像插件引用的示例一样

但是,当我尝试提交表单时,会收到一条HTML消息,上面说“请在列表中选择一个项目”,即使我已将所有项目移到右侧框中。因此,我无法提交表单,而且我甚至没有收到任何Django错误,因为它立即无法通过HTML验证

我应该怎么做才能提交右框中的所有项目


谢谢

这个问题很难重现,您看到这个错误的原因可能有很多。你确定页面没有刷新,是javascript插件发出了这个错误吗?一个快速的测试方法是使用默认的django小部件,看看它是否仍然存在。谢谢你的建议,@ShangWang。我还没有做这个测试,但我发现这确实是一个独立于javascript插件的验证问题。当我从
字段手动删除“required”属性时,我可以提交表单。但是,显然这不是一个解决方案,因为用户必须从左框中选择至少一个选项。所以现在的问题是如何正确地验证这一点。