jquery - 如何为搜索查询创建预定义的自动完成类似参数
问题描述
我正在导航中创建一个搜索字段来搜索数据库中的内容。在数据库中,我有几个实体,如产品、订单和发票。我希望用户编写搜索词,然后指定他希望从哪个实体搜索该词。
所以用例是:用户只需在输入字段中输入搜索词,就会出现一个带有预定义选项的自动完成框:
在“产品”中搜索
在“订单”中搜索
在“发票”中搜索
然后用户手动选择一个给定的选项,搜索词连同该选择的参数一起被发送到后端进行结果处理。
这是我希望该字段的外观和行为 http://jsfiddle.net/wr1Lm6t5/
Search: <input type="text" />
$("input").autocomplete({
source: ["Search in 'Products'", "Search in 'Orders'", "Search in 'Invoices'"],
minLength: 0,
}).focus(function () {
$(this).autocomplete("search");
});
但问题是在选择自动完成选项搜索词时会丢失。
我不能使用带有 ajax 的服务器端处理,我不想破坏单选按钮的导航。
解决方案
您可以使用自动完成的更改事件来获取 ajax
$("#parent").autocomplete({
source: [ { label: "Products", value: "Products" },{ label: "Invoices", value:"Invoices" },{ label: "Orders", value: "Orders" }],
minLength: 0,
change: parentChange
}).focus(function () {
$(this).autocomplete("search");
});
这对你有用吗?检查小提琴。 http://jsfiddle.net/83tbcnsz/2/
推荐阅读
- python - 带有函数的嵌套 for 循环
- android - AudioManger FLAG_SHOW_UI 未在三星设备中显示系统音量菜单
- microsoft-teams - 应记录使用 Teams Cloud 通信调用 API 的逐点步骤
- c# - 如何在每个特定时间间隔定期触发延时事件
- mysql - 如何在一段时间内(不是整个 mysql 实例)获取对特定数据库进行的选择查询数?
- ionic-framework - Ionic 4:弹出框不适用于右浮动
- node.js - 我的 Node.js 天蓝色函数正在返回大量数据。如何压缩json响应?
- python - TypeError:无法将项目插入到还不是现有类别的 CategoricalIndex 中
- python - 当我无法将工作表共享到服务帐户 client_email 时,如何授权 gspread?
- jquery - 如何延迟加载 Angular 应用的 jquery,以减少第一次请求的大小?