【问题标题】:django crispy forms accordion issuedjango 脆皮形式手风琴问题
【发布时间】:2016-02-13 21:18:24
【问题描述】:

我在下面有简单的手风琴:

我想根据reason_yesreason_no 字段的值有条件地设置active=Trueactive=False

def __init__(self, *args, **kwargs):
    super(MyUpdateForm, self).__init__(*args, **kwargs)
    self.helper = FormHelper(self)
    self.helper.layout = Layout(

        TabHolder(
            Tab(
                'Tab1',
                Accordion(
                    AccordionGroup(
                                   Field('reason_yes'),
                                   active=False
                    ),
                    AccordionGroup(
                                   Field('reason_no'),
                                   active=True
                    )
                )
            ),
            Tab(
                'Tab2',
                Field('other fileds')
            )
        ),
        FormActions(
            Submit('save_changes', 'Save changes', ),
            Button('cancel', 'Cancel', onclick="window.history.back()"),
        )
    )

【问题讨论】:

  • 你必须使用 JS
  • 是的,这就是我所做的。

标签: django django-crispy-forms


【解决方案1】:

最后我得到了像下面这样的 jQuery

var reasonYesValue = $('#id_reason_yes option:selected').val();
var reasonNoValue = $('#id_reason_no option:selected').val();
if (reasonYesValue == 'N/A' & reasonNoValue != 'N/A') {
    $('#yes-id').removeClass('in');
    $('#no-id').addClass('in').prev('.panel-heading').addClass('activeTab');
}
else {
    $('#yes-id').prev('.panel-heading').addClass('activeTab');
}
$('.panel-group')
    .on('show.bs.collapse', function (e) {
        $(e.target).prev('.panel-heading').addClass('activeTab');
    })
    .on('hide.bs.collapse', function (e) {
        $(e.target).prev('.panel-heading').removeClass('activeTab');
    });

【讨论】:

    猜你喜欢
    • 2017-02-19
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多