在不使用 JavaScript 的情况下,设计和处理用户可以添加任意数量的新输入字段的表单非常乏味。
目前我正在执行以下操作:在表单中使用 两个不同的提交按钮 ,一个用于添加新的输入字段,另一个用于提交导致数据库请求的表单。
为了添加新的输入字段,我想使用 GET 但由于一种形式中的两种方法是不可能的,我必须在 POST 请求中执行此操作。
我不满意,有没有更智能的方法来实现这一点,而无需开始编写大量处理代码并进行重定向或至少简化实现以降低错误风险!
另外,也许 Java 提供了一个解决方案来解决这个一般优雅的问题,因为我使用的是 Java Servlets 。
启用 JavaScript 后,我会提供一个单独的解决方案,我只关心回退解决方案,这不是正常情况。
最佳答案
看,在没有 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_d
)提供给下一个 next_input
。更新:但我不禁想知道这是否真的有必要。通常,当这些页面是典型的登录页面(由搜索机器人扫描)时,我们会针对“无 JS”情况进行设计。考虑到一些用户会在没有启用 JS 的情况下访问您的页面,但愿意在启用所有漂亮的东西的情况下使用它……嗯,至少可以说这不是很划算。 )
关于java - 如何在没有 JavaScript 的情况下设计可扩展的 HTML 表单?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10887415/