【问题标题】:How do I get 'hidden' property for a div with crispy forms?如何获得具有脆表格的 div 的“隐藏”属性?
【发布时间】:2017-07-26 22:03:05
【问题描述】:

我希望我的 html 以 'hidden' 作为 div 的属性呈现:

<div class="some-class" hidden>
    <input id="field1"....... form stuff>
</div>

如果我的表单如下所示:

class SomeForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(SomeForm, self).__init__(*args, **kwargs)

        self.helper = FormHelper()
        self.helper.layout = Layout(
            Div(Field('field1'), css_class="some-class"),
        )

我该怎么做?我似乎无法在 Crispy 文档中找到它。现在我用 jquery 做(在页面加载后),我也可以添加一个类,然后将它隐藏在 css 中,但是如何将“隐藏”属性添加到 div?

【问题讨论】:

  • hidden 不是 HTML 中允许的 div 属性。你到底想做什么?
  • 如果我检查/编辑页面并将 hidden 作为属性添加到 div 它会隐藏它。这样做是否有用,但不推荐?因为它似乎可以工作......基本上,我只希望在最初呈现表单时将div设置为display:none,然后通过jquery中的一些条件逻辑更改为display:block。我只是想知道是否有办法通过酥脆的形式做到这一点。
  • 使用 css 类会好得多。

标签: jquery css django django-crispy-forms


【解决方案1】:

根据the docs,您有几个选择。你可以用type="hidden"隐藏field

Field('field_name', type="hidden")

如果您必须隐藏 div,如您在示例中所示,我建议您只使用 CSS 类:

.some-class { display: none; }

但是,文档说,crispy-forms 只需将破折号替换为下划线即可支持所有 HTML5 属性(如 hidden)。看来,在你的情况下,简单地使用 hidden="true" 应该可以工作:

Div(Field('field1'), css_class="some-class", hidden="true")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多