这很难在标题中总结。我正在使用CodeIgniter和jQuery Mobile。我有一个带有下拉列表的页面(index.php),该列表在单击时提交表单(onChange)。
<select name="organiser_dropdown" onchange="this.form.submit()">
工作正常。所以它带我到下一页(view_events)没有问题。但是,当我按下移动设备上的“后退”按钮(Samsung Galaxy S Plus),并从index.php的下拉列表中选择一个选项,表单提交时,我会使用正确的信息转到正确的页面(view_events) ,然后它将我带回下拉列表页面。
没有重定向,代码逻辑似乎是正确的。当我在桌面浏览器中测试它时,一切正常。
我几乎可以肯定,问题是手机正在缓存页面,所以当我点击返回index.php时,它不会重新加载页面,不知怎的,这打破了它?我认为这是缓存,因为页面似乎没有时间重新加载。
我使用了一个提交按钮而不是onChange()函数,一切正常。这也表明这是缓存问题。
我使用jQuery来监听onChange事件并通过单击隐藏按钮来提交表单。它没有问题,但它加载了页面,下拉列表仍然出现在手机GUI上。对于可用性原因,这似乎有点奇怪,如果我想把它作为一种选择。
这不是本机手机应用程序,它是一个移动网站。
在CodeIgniter中,控制器正在使用带有1个参数的函数,该参数是下拉列表中的选定项目:
public function view_events($organiser_type = '') {...}
当没有通过网址发送* $ organiser_type *时,我有一段代码从POSTed表单中检索值:
if($this->input->post('organiser_dropdown')) {
$organiser_type = $this->input->post('organiser_dropdown');
}
答案 0 :(得分:1)
我有点想出这里的问题。我认为一旦按下手机上的后退按钮,jQuery Mobile就没有完全执行index.php页面。
我把它放在我的所有链接中以强制加载页面而没有ajax:
data-ajax="false"
有关此内容的更多信息,请访问:http://jquerymobile.com/test/docs/pages/page-links.html