【发布时间】:2017-03-31 20:11:04
【问题描述】:
我有一个 Django 项目,其中有一个这样的选择下拉列表:
但我想要这样的东西:
我的<select> 表单如下所示:(在开发人员工具中检查后)
<select class="form-control" data-parsley-required="true" id="id_org_role" name="org_role" required="">
<option value="A">Administrator</option>
<option value="M" selected="selected">Member</option>
</select>
如果不是select2,有没有其他jquery库可以帮我完成这个?
我已尝试遵循 Select2 的文档,并相信如果 this 方式(用于模板),我们可以在选项文本旁边跨越一个图像,然后,必须有一种方法来跨越每个选项下的“文本描述”。但我不知道这是如何实现的。到目前为止,我所做的只是:
var org_role = function(roles){
if (!roles.id) {
return roles.text;
}
return $(
'<strong>' + roles.text + '</strong>' + '<br/>'
'<span>' + "some description" + '</span>'
);
};
$("#id_org_role").select2({
templateResult: org_role,
});
但这不起作用。此外,即使是这样,它也会为所有选项显示相同的描述。但它必须明显不同。
我在模板中的 Django 表单如下所示:
<form method="POST" action="" class="org-member-edit" id='organization_permissions' data-parsley-validate>
{% csrf_token %}
<div class="form-group member-role{% if org_role_form.org_role.errors %} has-error{% endif %}">
<label class="control-label" for="{{ org_role_form.org_role.id_for_label }}">{% trans "Role" %}</label>
{% render_field org_role_form.org_role class+="form-control" data-parsley-required="true" %}
<div class="error-block">{{ org_role_form.org_role.errors }}</div>
</div>
</form>
在上面的第 5 行,即模板标签中的render_field org_role_form.org_role,org_role 采用以下形式的值:
(注意:render_field 因为我使用的是 Django-tweaks-wideget)
class EditOrganizationMemberForm(SuperUserCheck, forms.Form):
org_role = forms.ChoiceField(choices=ADMIN_CHOICES)
它从另一个文件choices.py中获取选择字段,如下所示:
ADMIN_CHOICES = (
('A', _('Administrator')),
('M', _('Member'))
)
我怎样才能做到这一点? (不同选项的不同描述)请帮忙。几个小时以来我一直被困在这个问题上。
【问题讨论】:
标签: jquery jquery-select2 jquery-select2-4 jquery-select2-3