当选中复选框时,如何在Django表单中显示可选字段?

时间:2011-03-25 01:15:07

标签: python django forms

Django可以不使用Javascript吗?

2 个答案:

答案 0 :(得分:4)

技术上可以使用一些CSS3技术,尽管不会有通用的浏览器支持。

您的字段将具有ID,具体取决于表单的前缀(默认情况下为“id”,创建表单时可配置),因此您可以使用标识符#id_field_name在css中设置表单元素的样式。然后你可以使用一些CSS3 Selectors来到你的领域,如下所示:

#id_checkbox_field ~ #id_hidden_field {display: none; }
#id_checkbox_field[checked] ~ #id_hidden_field { display: block; }

当然,您的选择器会因您的文档结构而异。 tilda仅在id_checkbox_fieldid_hidden_field共享父级时才有效,但理论上您可以设置文档结构,以便可以使用CSS3完成此操作。如果你想要流畅的动画,它是technically possible,但不容易,也不是很好的支持。

正如pjmorse所说,替代方案是让他们选中复选框,提交表格,然后让它显示新字段。让我知道,如果你想要帮助解决这个问题,那就完全可以了解蠕虫,我怀疑这是你正在寻找的东西。

大多数情况下,当你想动态地做某事时,你想要使用javascript。

答案 1 :(得分:2)

您是指在选中复选框时显示可选字段?在没有Javascript的任何框架中,这几乎是不可能的。您的简单选项是使用JS根据复选框的状态显示可选字段,或者使复选框实际回发以重新加载显示可选字段的表单的不同版本(并使复选框的行为方式需要JS)。

我想可能有可能与CSS结合在一起,但JS实际上更可靠 - 你可能仍然需要它来更改容器视图的选择器。