2010-12-13 133 views
1

我有一些隱藏DIV(style =「display:none;」)域的表單。用戶可以點擊一個按鈕,顯示這些額外的字段,如果他們希望。隱藏DIV中的表單域

現在,如果用戶以其「緊湊」狀態提交表單,隱藏div中的表單變量也會提交併顯示在地址欄中。

如何更改此行爲,以便僅提交可見的表單字段?

回答

2

使用POST而不是GET。

將字段隱藏時將disabled屬性設置爲true,並在顯示字段時再次啓用它們。 disabled將阻止他們被提交。

+0

這是一個搜索表單,所以它使生活更容易使用GET。我會嘗試禁用的屬性,將與GET工作? – GSTAR 2010-12-13 15:14:50

+0

是被禁用的屬性也可以和GET一起使用 – Cfreak 2010-12-13 20:01:13

0

你必須想出一個JS方法,只提交你想要的值的表單。它目前的工作方式是正常的瀏覽器行爲。僅僅因爲表單域被隱藏起來並不意味着它們不應該被提交。

如果可以的話,使用POST而不是GET,你不必擔心它。

0

將DIV放在FORM元素外面,你應該沒問題。如果您無法從後端執行此操作,請使用腳本。

讓撥動回調把DIV到位如果需要的話,這樣我相信:

// show 
form_elm.appendChild(div_elm); 
div_elm.style.display = 'block'; 

// hide 
form_elm.parentNode.appendChild(div_elm); 
div_elm.style.display = 'block'; 

您可以在您選擇的JavaScript庫,做到這一點更優雅。

0

這就是所有的CSS工作真的。 .hidden_​​div_1表單{... visibility:hidden;禁用:禁用;只讀:只讀; }

我想添加不透明度:0.0;也只是因爲我永遠不知道什麼時候我想稍後爲其他原因進行調整。

+0

或者您可以通過點擊某個按鈕,鏈接,選項等從一個div切換到另一個div,從而在您的js和服務器頁面中丟棄其他div。 – 2013-08-17 21:06:19