2011-03-25 19 views

回答

2

您的意思是当检查复选框时显示可选字段?这在没有Javascript的框架中几乎是不可能的。您的简单选项是使用JS根据复选框的状态显示可选字段,或者使复选框实际返回以重新加载显示可选字段的不同版本的表单(并使复选框按照这种方式行为JS)。

我想有可能将某些东西与CSS一起打包,但JS实际上更可靠 - 而且您可能仍然需要它来更改容器视图的选择器。

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; } 

当然,你的选择将取决于你的文档结构有所不同。只有id_checkbox_fieldid_hidden_field共享一个父级,tilda才能正常工作,但理论上可以设置文档结构,以便使用CSS3完成此操作。如果你想要流畅的动画,那就是technically possible,但不容易,也不是很好的支持。

正如pjmorse所说,替代方法是让他们检查框,提交表单,并让它返回显示的新字段。让我知道,如果你想要帮助解决这个问题,这是一个蠕虫的整体,但我怀疑你正在寻找什么。

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

+0

感谢您的回答。提交表单不是一种选择。您确认我没有忽视Django选项。为了远离JavaScript,不是因为我害怕它,我会跳过复选框并显示一个可选字段。 – voscausa 2011-03-25 11:44:58

+0

好主意。像Django这样的框架是用于服务器端代码的,一旦客户端获得它就不会影响页面。 Django只会帮助您响应请求,例如页面提交或异步JavaScript和xml(ajax)。如果你想在页面加载后发生任何事情,你需要使用javascript或者等到CSS3有更好的支持。 :) – So8res 2011-03-25 17:58:07

相关问题