新问题,但非常接近need to refresh page in jquery mobile。
我有一个/登录页面,第一次访问该应用程序时,用户被重定向到该页面(因此未记录)。顺便说一句,要登录,用户只需提供用户名。此/登录页面提供带有单个文本输入的表单,如下所示:
<form method="post">
<span>Votre pseudo:</span>
<input id="username" name="username" data-bind="value: username, valueUpdate: 'afterkeydown'" />
<input type="submit" id="join" data-icon="star" value="Rejoindre !" data-bind="enable : canJoin"/>
</form>
表单上没有action属性,因此(除非我缺少一些基本原理,希望不是)表单提交post / to login。
我正在使用带有express的NodeJS,并且处理post请求服务器端看起来像这样:
app.post("/login", function (req, res) {
//do some stuff, store username for instance...
res.redirect("/");
});
我确实被重定向到/匹配页面(索引),但是这个索引页面中的嵌入式脚本没有运行,并且一些jquerymobile对象没有完全运行:这个索引文件有2个JQM页面(两个带数据角色的div) =“page”),第一个JQM页面(div)的页脚有2个链接,一个指向第二个页面(div)(通过锚点,JQM方式)。但是这个链接也没有活动。
我必须重新加载/页面才能运行嵌入式脚本($(document).ready,标题中的脚本...)并且所有JQM对象都能正确响应。
提示:在重新加载页面之前,在firebug中,post / login请求的响应有一个302 statut(是由于重定向指令服务器端),以及以下get / request(确定由于重定向指令服务器)虽然它可以加载页面和它嵌入的单个图像,但是有一个带有200个法规的EMPTY响应。
我肯定错过了一些但却无法弄明白... 谢谢你的帮助
答案 0 :(得分:1)
简单的解决方案是在页面上的任何链接上使用data-ajax="false"
,这告诉jquery mobile可以像任何普通网站一样加载整个页面。
示例:
<a data-ajax="false" href="page.html"> Some link </a>
答案 1 :(得分:0)
JQuery mobile使用ajax将请求的页面加载到dom中。您请求的页面上只应有一个jqm“页面”。
我记得,我必须将所有脚本添加到第一页,然后绑定到页面更改事件以决定何时执行它们。我不认为jqm会执行通过ajax加载的页面中的脚本。
在这里查看页面结构:
http://jquerymobile.com/demos/1.0.1/docs/pages/page-anatomy.html
导航如何运作的更多细节如下:
http://jquerymobile.com/demos/1.0.1/docs/pages/page-navmodel.html