隐藏表单字段,但不要在JavaScript中提交

时间:2011-05-04 19:23:44

标签: javascript forms

我想默认隐藏一些表单字段,并且只根据复选框在组中显示它们。

如果用户显示某些字段,请填写它们,但是然后使用复选框重新隐藏它们,如果字段中包含某些内容,或者我应该使用JavaScript清空它们,数据是否会提交?

4 个答案:

答案 0 :(得分:2)

无论如何都会发送字段,但是接收帖子的服务应该只查找该复选框的值并忽略该点的值。无论是那个,你都需要清除这些字段。

答案 1 :(得分:2)

根据html规范,如果字段符合以下条件,则会提交字段:

  • 它包含在提交的表格中
  • 类型为输入,选择,按钮
  • 它包含非空名称属性
  • 如果是< input type =“checkbox”或type =“radio”/>必须检查。

可见性并不重要。事实上,有很多原因导致某些东西可能隐形,包括屏幕外。蜜罐字段等一些技术需要这样做。

因此,要完全回答您的问题,如果某些表单交互要求您只提交可见内容,则可以执行以下操作之一:

  • 将“可见”元素移动为表单的子元素(首选方式),在不可见时(动画隐藏它们之后)将它们移动到另一个父元素。这应该是我认为最简单的方法,特别是如果使用jquery。记住动画,将隐藏的元素移动到适当的父母,然后动画。此外,隐藏的元素可以轻松地以最小的性能进行操作,因为浏览器不会尝试重新渲染它们,直到它们仍然可见为止。
  • 清除数据(丢失用户输入)
  • 清除输入字段的名称,并在取消隐藏时重新创建名称。

第三种技术有点多。我会根据您的具体需要做第一个或第二个,并优先考虑第一个。

答案 2 :(得分:1)

为了保持简短和甜蜜,请使用javascript删除该字段。这很简单快捷,您无需扩展服务器端脚本来确定所经历的内容。如果你也需要,将删除的html存储到全局变量中,所以当他们切换选项后,脚本会回来。希望这有帮助!

答案 3 :(得分:0)

如果表单刚刚隐藏,是的,尽管隐藏了数据,数据仍会提交。你需要通过JS清空它们。