表单:
class StartEndDateEpayOperatorsForm(forms.Form):
...
def __init__(self, *args, **kwargs):
super(StartEndDateEpayOperatorsForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
...
self.helper.layout = Layout(
AppendedText('start_date', '<span class="glyphicon glyphicon-calendar"></span>', active=True, css_class='date'),
...
)
表单HTML:
...
<div class="input-group">
<input id="id_start_date" type="text" class="date dateinput form-control" value="2013-10-01" name="start_date">
<span class="input-group-addon active">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
...
为了将日历图标用作 bootstrap-datepicker 触发器,我需要将新的日期添加到 <div class="input-group">
如何使用 django-crispy-forms 实现目标?
目前 AppendedText 的属性 css_class 应用于INPUT元素而不是父DIV。
TNX!
答案 0 :(得分:1)
您可以使用
self.helper.field_class = 'input-group'
这将生成带有&#39;输入组&#39;的css类。对于此表单中的所有字段。
答案 1 :(得分:1)
使用以下javascript:
$('.datetimeinput').closest('div').datetimepicker();
最接近的div是'input-group'div。 Bootstrap-datetimepicker将负责将'date'类添加到'input-group'div。
答案 2 :(得分:1)
在Daria's answer的基础上,我将id(div_id_start_date_container
)传递到容器div中,如下所示:
Div(AppendedText('start_date',
'<span class="glyphicon glyphicon-calendar" </span>', active=True),
css_class='date col-sm-4 col-sm-offset-1',
css_id='div_id_start_date_container'
),
然后我直接通过id包装它,而不是依赖closest
函数。
$('#div_id_start_date_container').datepicker({
format: "yyyy-mm-dd",
autoclose: true,
todayHighlight: true
}
);
注意 - Crispy表单将为表单组创建一个名为div_id_start_date
的元素,因此您需要将外部div调用为不同的内容。