onChange()for dropdown第二次不起作用

时间:2012-07-23 00:07:52

标签: javascript forms codeigniter jquery-mobile onchange

这很难在标题中总结。我正在使用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');
    }

1 个答案:

答案 0 :(得分:1)

我有点想出这里的问题。我认为一旦按下手机上的后退按钮,jQuery Mobile就没有完全执行index.php页面。

我把它放在我的所有链接中以强制加载页面而没有ajax:

data-ajax="false"

有关此内容的更多信息,请访问:http://jquerymobile.com/test/docs/pages/page-links.html