使用jQuery Mobile在页面之间传递数据?

7

我刚开始学习jQuery Mobile,了解到它通过ajax加载所有链接而不实际加载下一页。我的几个页面使用表单和GET方法将数据传递到下一页,那么在使用jQuery Mobile的情况下如何实现这一点呢?


请查看这个 jsfiddle:http://jsfiddle.net/Palestinian/RFv4C/ - Idrees Khan
兄弟...晚了两年半。 - temporary_user_name
1
但这并不意味着这个答案应该被删除。我把它粘贴出来是为了任何发现它有用的人,就像我一样。无论如何,我虽然晚了但很棒 :) - Idrees Khan
好的,说得好,赞! - temporary_user_name
2个回答

23

我认为JQM的一个很酷的特点是,你不需要使用参数在页面之间传递数据。由于你在同一DOM中作为第一个页面,你可以使用普通的变量访问数据,例如:

field1 = $('[name=field1]').val();
field2 = $('[name=field2]').val();

只要您正在使用JQM的ajax功能,您可以在下一页中执行以下操作:

$('.title').text(field1);

我为您做了一个 jsfiddle 的示例

其他方法可以使用 localStorage 或 sessionStorage API,或者文档中还提到了一些插件。

  1. page params
  2. JQM router plugin

为什么Aerovistae不接受这个答案?我有同样的问题,这个答案帮了我。 - imin

11

通常情况下,有两种方法可以在 jQuery Mobile 页面之间传递参数:

  1. 在第一页修改 Ajax 地址,并在下一页解析 Ajax 以获取参数。
  2. 使用 HTML5 sessionStorage,一种 WebStorage,来传递参数。

以下是使用 Ajax 地址传递参数的方法。 How to pass and get Parameters between two Pages in Jquery Mobile?


使用 sessionStorage/localStorage 传递参数,你可以在第一页添加如下代码:

<a href="#page_Parameter1" onclick="sessionStorage.ParameterID=123">
    Before go to next page, parameter id is storaged into sessionStorage.
</a>

在下一页,您可以使用此方法来获取参数内容:

$('#page_Parameter1').live('pageshow', function(event, ui) {
    alert('Parameter ID: ' + sessionStorage.ParameterID);
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接