下拉列表的onChange()第二次不起作用

onChange() for dropdown does not work the second time

本文关键字:第二次 不起作用 onChange 下拉列表      更新时间:2023-12-25

这在标题中很难概括。我在jQuery Mobile中使用CodeIgniter。我有一个带有下拉列表的页面(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 = '') {...}

当*$organizer_type*没有通过url发送时,我有一段代码从张贴的表单中检索值:

if($this->input->post('organiser_dropdown')) {
        $organiser_type = $this->input->post('organiser_dropdown');
    }

我已经解决了这里的问题。我认为一旦我按下手机上的后退按钮,jQueryMobile就没有完全执行index.php页面。

我把这个放在我所有的链接中,以强制在没有ajax的情况下加载页面:

data-ajax="false"

有关这方面的更多信息,请点击此处:http://jquerymobile.com/test/docs/pages/page-links.html