如何在没有JavaScript的情况下设计可扩展的HTML表单?

时间:2012-06-04 19:52:22

标签: java html forms servlets

设计和处理用户可以添加任意数量的新输入字段的表单非常繁琐,而不使用JavaScript

目前我正在执行以下操作:在表单中使用两个不同的提交按钮,一个用于添加新的输入字段,另一个用于提交表单,该表单会导致数据库请求。

  • 使用的方法是 POST

    用于添加新的输入字段我想使用 GET ,但由于一种形式的两种方法无法实现,我必须在POST请求中执行此操作。

  • 对于一种类型的输入字段来说这很容易,但是当你需要为子表单(同一表格中的某些输入字段组)执行此操作时,这不仅变得单调乏味,而且易错 <!/ p>

我不满意,是否有更智能的方法来实现这一点,而无需开始编写大量处理代码并进行重定向或至少简化实施以降低错误风险!

此外,也许有一个 Java 提供的解决方案来解决这个优雅的问题,因为我正在使用 Java Servlets

启用JavaScript后,我会提供一个单独的解决方案,我只关心后备解决方案,这不是正常情况。

1 个答案:

答案 0 :(得分:1)

请参阅,在没有JavaScript的情况下严格限制您的能力:您必须依赖标准的HTTP请求/响应周期。换句话说,您必须重建一个新页面(添加一些输入字段)并每次发送此新页面 - 没有解决方法。

以下是我将如何实现它:

<form action="/path/to/action" method="post">
  <input name="param_a" />
  <input name="param_b" />
  <button type="submit" name="next_input" value="param_c">Add a field</button>
  <button type="submit" name="submit">Submit your form</button>
</form>

...然后在服务器端代码中,我只检查是否发送了next_input param。如果已发送,其值将用于获取要添加的控件 - 并将相应的值(例如param_d)提供给下一个next_input

更新:但我不禁想知道这是否真的有必要。当这些页面是典型的登陆页面(由搜索机器人扫描)时,我们通常设计“无JS”案例。考虑到一些用户会在没有启用JS的情况下访问您的页面,但愿意将其与所有可用的东西一起使用...好吧,至少可以说它不是非常划算。 )