javascript - mmenu 搜索触发网站(全局)搜索

标签 javascript jquery search mmenu

我想知道 mmenu 中的搜索是否有可能触发网站搜索,而不仅仅是返回菜单中的项目?

结果不需要显示在菜单中,但按回车键或单击/点击搜索按钮将提交全局网站搜索并重定向到 /search

这可能吗?我确定我在某个地方见过它,但我找不到。我想可能需要一些 jQuery 来更改提交按钮的功能?

我不确定它是否重要,但这将出现在 Shopify 网站上,标题中有一个搜索表单,标记如下:

<form action="/search" method="get" role="search" class="search"> 
    <input type="search" 
           name="q" 
           id="Search" 
           class="text-input search__input" 
           value="" 
           placeholder="Search"> 
    <button type="submit" class="search__btn"> 
        <svg class="icon icon--search"><use xlink:href="#icon-search"></use></svg>  
    </button> 
 </form>

最佳答案

这里有几个场景

允许重新加载页面

这是最简单的情况,如果允许页面重新加载,您的表单将被提交到 search?q=some search,这应该是服务器的有效路由,然后您可以根据 ?q=some search 并在您的前端呈现它们

不允许重新加载页面

这可能相对有点棘手,实现将取决于您正在使用的前端框架,但粗略的实现类似于

  • 您将onFormSubmit 事件绑定(bind)到您的表单
  • 当表单提交时你将阻止表单提交并读取q参数
  • 您将通过使用参数 q 重定向到 /search 页面来更改应用程序的状态
  • 负责/search的组件/页面将发起对搜索结果的请求

关于javascript - mmenu 搜索触发网站(全局)搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50482203/

相关文章:

jquery - 在 jQuery 中使用 Accordion 样式菜单时,有没有办法修复像素移动?

javascript - 使用 jQuery.getScript() 赋值后全局变量未定义

使用整个单词在新的 Sitecore ContentSearch 中进行搜索

javascript - PHP 表单写入原始 HTML 页面

javascript - 可扩展应用程序的 CORS 问题

jquery - 如何使用不显眼的 jQuery 验证手动重新验证/触发验证?

php - 用 PHP 搜索 MySQL

javascript - 如果字符存在于定界符的任一侧,则按定界符拆分字符串

javascript - 单击 div 内的 iframe 中的元素后删除该 div

javascript - 在搜索字符串的子部分时如何过滤 JSON?