2011-03-25 51 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

相關問題