我正在尝试构建一个具有多个阶段的网络表单。我正在从 Stack Overflow/Stack Exchange 标记网络表单中对其进行模式化。问题是,我不确定如何触发“下一阶段”操作。
举例来说,如果有人想在 Stack Overflow 上标记一个问题,您可以单击 flag
,然后弹出窗口会提示您做出选择。如果您选择第二个选项(“它不属于这里,或者它是重复的”),表单会自动将您带到第二个屏幕。
第一屏:
点击后,它会自动重定向到:
问题是我不知道底层触发器是什么。单击该单选按钮如何将最终用户发送到下一个屏幕?
我尝试查看源代码,但我感觉我只看到了一半的图片:
我发现没有多少 HTML 教程有与此类似的练习示例。我怀疑这是 JavaScript,但我找不到会触发这些操作的链接 .js 文件。
那么:网络表单如何在点击时自动重定向?作为后续行动,如果它使用的是 JavaScript,是否有我可以使用的纯 HTML/CSS 解决方法?
最佳答案
在比框架更低的层次上考虑这个问题可能会有所帮助。有两种方法可以制作多阶段表单。
第一种(通常也是较旧的)方法是将状态存储在服务器上。表单的每个阶段实际上是一个单独的表单,客户端通过调查问卷的进度保存在服务器上(例如,作为 session 数据的一部分)。
第二种方法(更现代的方法)是使用 JavaScript,正如您所怀疑的那样。在这种情况下实际上几乎没有黑魔法,根本没有点击自动重定向。您所要做的就是拥有一个非常长的表单,您可以在其中根据用户的选择显示/隐藏一些元素(当然,您可以显示/隐藏多个 <form>
元素)。
关于javascript - 如何构建多阶段 Web 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10544677/