2010-12-13 96 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