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

Mah*_*oni 5 html java forms servlets

如果不使用 JavaScript,设计和处理用户可以添加任意数量的新输入字段的表单是非常乏味的。

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

  • 使用的方法是POST

    为了添加新的输入字段,我想使用GET,但由于不可能在一种表单中使用两种方法,因此我必须在 POST 请求中执行此操作。

  • 对一种类型的输入字段进行此操作相当容易,但是当您需要对子表单(同一表单中的某些输入字段组)执行此操作时,这不仅变得乏味,而且容易出错

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

另外,也许Java提供了一个解决方案来解决这个一般优雅的问题,因为我使用的是Java Servlets

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

rai*_*7ow 2

你看,不使用 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>
Run Code Online (Sandbox Code Playgroud)

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

更新:但我忍不住想知道这真的有必要吗?通常,当这些页面是典型的登陆页面(由搜索机器人扫描)时,我们会针对“无 JS”情况进行设计。想想有些用户会在没有启用 JS 的情况下访问您的页面,但愿意在启用所有漂亮功能的情况下使用它……好吧,至少可以说,这不是很划算。)