【发布时间】:2011-12-23 14:36:47
【问题描述】:
我正在使用 PhoneGap 和 jQuery Mobile 编写移动应用程序。为了简化导航,我想使用 div data-role="page" 将单个表单分布在多个“页面”上。这个想法是为用户提供一种类似向导的体验来填写大型表格。完成后,我需要能够在本地保存表单,或者在手机在线的情况下提交表单。
如果表单被拆分为多个“虚拟”页面,我不明白如何使用 jQuery Mobile 提交或保存表单。我在网上搜索过,但找不到任何解决此问题的教程或示例。
任何帮助将不胜感激。
更新:
我最近改变了使用多页表单的方式,这个解决方案对我来说效果很好。您基本上使用命名约定,其中字段通过以部分名称和破折号开头的 id 成为部分的一部分,例如:人名、人名。请参阅下面的答案。
【问题讨论】:
-
我的建议是使用本地存储来保存 (davidwalsh.name/html5-storage),我认为您可以在多个页面上拥有一个表单并且仍然可以提交。我使用 Alpha 4 做了类似的事情,但是 jQM 已经从那个版本中改变了很多。只需开始测试并发布您尝试过的代码,以便我们提供更好的帮助
-
说实话,我不知道从哪里开始。 jQuery Mobile 的多页面概念对我来说完全是个谜。实际上,您最终会得到一个分布在多个虚拟页面上的表单,但这似乎根本不对,我也无法让它工作。
-
我添加了这个问题:PhoneGap and jQuery real world tutorial 我希望一个好的现实世界教程能够解决这个问题。
-
您需要处理的主要问题是JQM 自动接管表单并通过Ajax 提交它们。您想为表单编写自己的处理程序并在将用户移动到下一页时存储数据。 Phill 关于使用本地存储的建议是有道理的。这个怎么样 - 今天早上我会写一篇关于它的博客文章。在 2-3 小时内寻找。
-
实际上 - 如果您使用服务器端语言来管理用户所在的步骤 - 您可以完全不使用任何客户端 JS 代码。基本上页面加载表单 1,在提交时您的服务器端存储它并输出表单 2。由于 JQM 自动获取结果并在 DOM 中替换它,它可能只是工作。我也试试。
标签: forms jquery-mobile cordova