我想知道 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/