3

我是 JavaScript 新手,并试图找出执行以下操作的规范方法。

我有一个带有一些复选框和选择器的表单。假设复选框是音乐风格,选择器是人名。

我希望用户能够为多人选择音乐风格,然后提交包含所有数据的表单。

例如,用户可能首先勾选古典、爵士、摇滚和流行并选择“乔”,然后选择爵士、流行、乡村和电子乐并选择“简”。所以“提交人”和“提交表格”必须有两个不同的按钮。

我想:

  1. 在表单下方填写名称列表及其选择的样式,以获取反馈
  2. 允许用户随心所欲地使用表单,然后在最后提交所有数据

我觉得使用 jquery 和 JSON 是完美的,但我不确定使用什么搜索术语来弄清楚如何做到这一点。

如果重要,表单将由 Python 中的 Django 视图处理。

4

2 回答 2

1

您可以通过将 AJAX 用于提交人来实现此目的。你的工作流程应该是这样的:

  1. 用户选择 Joe 和相应的音乐风格。
  2. 用户点击“提交人”。jquery ajax()在此事件中,将人名 (Joe) 和所选音乐风格编码到 JSON 对象中,并通过 AJAX ( ) 请求将其传递给您的后端脚本。
  3. 服务器端脚本执行它需要的任何处理。当它完成时,您的 AJAX 调用的成功处理程序将被调用。此时,您可能可以删除“Joe”,以便用户知道提交成功并且不再为 Joe 提交。
  4. 为您表格中的所有其他人清洗、冲洗、重复。

PS - 当您通过 AJAX 将信息传递到后端时,您不必将其编码为 JSON。您可以将其作为标准 POST 请求发送。要将 Javascript 对象编码为 JSON,请使用JSON.stringify()

以上是这样做的一种方法,但是它不会像您在问题中提出的那样工作(继续收集数据 - 立即提交),要以这种方式工作,每次用户点击“提交人员”时,将数据添加到一个 Javascript 对象,但不要提交它。提交的数据将继续建立在一个 JS 对象中。

最后,当用户点击“提交表单”时,将数据字符串化并提交。

于 2012-04-15T17:24:44.697 回答
0

使用 django form-wizard 怎么样.. 就够了吗?https://docs.djangoproject.com/en/dev/ref/contrib/formtools/form-wizard/

于 2012-04-18T21:45:35.533 回答