【问题标题】:jQuery interfering with javascript search function (passing parameters)jQuery 干扰 javascript 搜索功能(传递参数)
【发布时间】:2012-10-05 10:02:17
【问题描述】:

我有一个非常基本的移动 html 网站,带有 javascript 搜索功能,可以提供离线搜索功能。我放入 jquery mobile 是为了有一个固定的工具栏(使用电话间隙并且不支持 ccs 固定位置)。现在的问题是 jquery 通过更改传递的参数影响了搜索功能。

您可以在查看 url 时看到问题。

例如:

如果我搜索“stackoverflow”

网址应如下所示: search.html?searWords=stackoverflow

以下是创建的内容(注意搜索框的值为“Search Specs”) search.html?searWords=stackoverflow&Send=Search+Specs

如果我从搜索按钮中取出“搜索规格”,代码只会将其省略,但我会得到相同的结果: search.html?searWords=stackoverflow&Send=

简而言之,jquery 移动脚本 'jquery-1.6.4.min.js' 和 'jquery.mobile.min.js' 在 url 的末尾插入 &Send=”value of search button” 时使用了搜索功能。

【问题讨论】:

    标签: javascript cordova jquery-mobile parameter-passing


    【解决方案1】:

    这是因为 jQuery mobile 默认使用 AJAX 导航,这意味着它将拦截所有页面上的所有链接和表单,并使用您指定的 URL(例如 page.html#page2.html)导航它们。这也适用于表单。

    如果您可以不用此功能,您可以使用 ajaxEnabled 选项将其关闭。

    【讨论】:

    • 谢谢你,它确实有帮助,搜索功能第一次工作(即使 URL 像以前一样被更改),第二次又恢复不工作。我通过创建一个名为 custom 的新 js 文件并在其中插入代码,然后在导入两个 jquery js 文件的位置之间导入它来实现它。我是否正确实施了这一点?我想我还没有考虑到 URL 仍然改变,即使它第一次工作......
    • 所以您的 URL 仍然更改为 "page1.html#page2.html" 吗?如果是这样,也许您也可以尝试禁用pushStateEnabled选项,这可能是原因
    • 是的,当我尝试搜索某些内容时,它仍在 URL 末尾添加“&Send=VALUE OF SEARCH BOX”。我会在之前提供 pushStateEnabled
    • 好吧,既然我重新阅读了你的问题,我没有意识到你的发送按钮的价值也是一个问题......你不可能使用 URL 的一部分你的搜索关键字呢?也许看看this SO answer 寻求帮助...
    • mmmhhh 有点过头了!我想知道是否可以只使用导航栏所需的代码,因为这是我从 jQuery 使用的唯一功能,这显然可以解决问题..
    猜你喜欢
    • 1970-01-01
    • 2013-07-14
    • 2023-03-15
    • 2019-01-25
    • 1970-01-01
    • 2021-05-15
    • 2013-07-01
    • 1970-01-01
    • 2015-07-21
    相关资源
    最近更新 更多