问题标签 [jquery-autocomplete]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
137 浏览

jquery - 如何从 jquery-autocomplete 中检索两个值

我需要我的应用程序自动填写公司名称,但还需要使用所选公司的 ID 填写隐藏的表单字段。

我相信可以使用管道分隔符返回对值,例如........

确实这似乎有效,但我不知道如何访问第二个参数。

0 投票
2 回答
4822 浏览

jquery - 我在哪里可以下载 jQuery UI 的非缩小版?

我正在尝试自定义自动完成组合框

旨在将其用于带有弹出按钮的嵌套列表。从缩小版的 jQuery UI 开始显然并不理想。下载构建器仅提供缩小的下载。

0 投票
2 回答
1390 浏览

ajax - 如何生成非前缀自动完成建议?

我想为我的标记功能添加自动完成功能。

几个问题:

  1. 如何生成包含前缀和字符串中间匹配项的自动完成建议列表?例如,如果用户键入“auto”,则自动完成建议应包括“自动完成”和“构建自动化”等术语。

  2. 我想允许多词标签并使用逗号(“,”)作为标签的分隔符。所以当用户按下空格键时,他仍然在输入相同的标签,但是当他按下逗号键时,他正在开始一个新的标签。我怎么做?

我正在使用 Django、jQuery、MySQL 和 Solr。实现上述 2 个功能的最佳方法是什么?

0 投票
2 回答
835 浏览

jquery - Jquery AutoComplete - 将等于原始 SelectBox 值的链接添加到下拉列表

我正在尝试修改此示例: http: //jqueryui.com/demos/autocomplete/#combobox以解析类似的选择列表,其中超链接作为值传递。

所需的效果是一旦匹配完成并且用户单击进入或仅当用户单击自动完成列表中的建议时激活指向相应页面的链接。

我还尝试让 AutoComplete 解析一个简单的链接列表而不是一个选择列表,但考虑到我新的 jquery 技能,这对我来说似乎太过分了。

任何帮助将不胜感激。非常感谢你。

0 投票
2 回答
1551 浏览

jquery - 在 JQuery 自动完成中使用当前选择器

我正在使用 JQuery UI 的自动完成小部件,并希望能够访问我将自动完成附加到的当前选择器。我找到了一种访问选择器的方法,在这里使用前面的问题,但是源函数被错误地调用。

我当前的代码看起来像这样

如您所见,我得到了当前选择器并将其放入 e1 中。给定的“艺术家”输入有多行,我希望能够知道方法中每一行的 ID,findSuggestions但是当调用该方法时,每一行都被赋予相同的 ID(这是引用最后一个行。

知道为什么会发生这种情况吗?我是否错误地处理了这个问题?

谢谢!

0 投票
2 回答
4731 浏览

php - 我将如何修剪 JQuery 自动完成框的输入?

<input>在与名称列表匹配之前,有什么方法可以修剪(删除前导/尾随空格)用户输入到 jQuery 自动完成文本框中的输入:值?我目前有一个文本框,用户可以在其中输入姓名。然后通过 jQuery 将名称与名称:值对列表进行匹配:

我的问题是,如果用户输入的名称与resources地图中的名称匹配,但后面有空格,则不会匹配,因此不会为输入分配任何值。如果可能的话,我希望至少在此映射中忽略尾随空格(如果不是前导空格)。

另外,如果没有找到地图,是否可以为输入框添加默认值?

编辑:

顺便说一句,如果用户键入的内容不匹配,是否可以在下拉自动完成框中显示不匹配的条目?为问题后的编辑道歉。

0 投票
2 回答
1014 浏览

javascript - 当用户点击提交时如何让jQuery自动完成执行搜索()

作为我上一篇文章的后续内容 -我将如何修剪 JQuery 自动完成框的输入?. 我决定提出一个新问题,而不是继续编辑那个问题。

我目前有 jQuery ui 自动完成 1.8(左右)工作得相当好,除了一件事。如果用户只是输入(有效)名称并点击提交,则自动完成查找永远不会运行,因此相关值永远不会被抓取并分配给输入框。这当然是个问题。阅读文档,这意味着我可以使用 jQuerysearch()方法来克服这个问题。但是,我正在努力让它发挥作用。我已经尝试将调用放在search()文本输入的 onblur 事件和提交按钮的 onclick 事件中,但无济于事 - 每当我点击提交时,我对输入框没有任何价值。编码:

那么,我到底做错了什么?

0 投票
1 回答
1570 浏览

jquery - jQuery 自动完成问题 - 如果用户没有特别选择,则不匹配

继我之前的两个问题之后:

当用户点击提交时如何让jQuery自动完成执行搜索()

我将如何修剪 JQuery 自动完成框的输入?

我的表单中有一个 jQuery UI 1.8 自动完成框,在大多数情况下,它就像一个魅力。我遇到的一个问题是,如果我输入一个有效的名称,但不选择出现的选项,那么该名称永远不会与我的{name,value}列表匹配,因此包含“值”部分的隐藏输入的正确值不是放。这当然会导致令人困惑的情况,您可以输入您知道正确的名称,点击提交并被告知您没有输入正确的名称(因为值为null)。

即使用户没有从自动完成框中做出选择,我如何确保设置了隐藏的输入值?是否有一些功能可以绑定到提交按钮的 onclick 事件,这将使 jQuery 使用框中的内容进行搜索并自动选择第一个选项?或者,我可以让自动完成功能在用户以任何方式取消选择输入框(返回/制表符/单击关闭/等)时选择第一个选项吗?

谢谢。

0 投票
1 回答
1825 浏览

asp.net - ASP.NET 中多个键/值选择的 jQuery UI 自动完成

如何使用自动完成处理多个项目的选择?我从 JSON Web 服务返回的对象包含一个 ID 和一个标签 - ID 是数据库中实体的 ID,而标签是一些要为用户显示的文本。

目前,当我在自动完成下拉菜单中选择一个项目时,项目 ID 的值存储在一个隐藏字段中,并显示标签。当我删除标签时,我清除了隐藏字段的 ID - 这是通过向处理它的 DOM 添加一个锚元素来完成的。

现在,我想有多个选择。我希望能够输入一些文本,获得自动完成下拉菜单,选择一个项目和一些其他选项,然后能够单击“添加新”按钮或类似的按钮来选择另一个实例。

例如,我会输入一个人的名字并获得一个自动完成的选择。我会选择一个人,然后输入他们的年龄,然后单击“添加”。该人的 id、姓名和年龄将存储在某个地方,以便我在回帖时可以在服务器端检索它。

我不太确定该怎么做?我正在考虑一个隐藏字段 - 我假设许多具有相同名称/id 的隐藏字段作为一个数组出现在服务器端,然后我可以使用它。但我还没有在 ASP.NET 中尝试过这个。

你是如何解决这个问题的?

0 投票
8 回答
5993 浏览

javascript - jQuery 自动完成 - 单击提交按钮不算作“更改”

是的,这确实是我关于 jQuery UI 自动完成的第三个或第四个问题。我最近的烦恼是单击表单中的“提交”按钮似乎不算作 jQuery 的“更改”。当我的输入框发生变化时,jQuery 会运行一些 javascript 来强制匹配可接受的输入列表及其值:

如果 EmployeeNumber (hidden) 输入已经有一个值,输入一个无效的名称,然后按 Tab 键或单击输入框会清除该值,但是如果您立即点击表单Submit按钮,它似乎不算作“更改” ' 并且POST数据包括以前的 EmployeeNumber 值 - 使应该是不正确的输入“有点”正确!

是否有某种方法可以让 jQuery 认识到单击“提交”也是一种更改,或者我可以通过某种方法让Submit按钮通知 jQueryResource输入已被单击?

更新

最后,我通过使用我认为相当老套的方法解决了这个问题——我放弃了自动完成框的“更改”事件,并在用户单击提交时手动匹配自己。它现在的工作方式是,如果用户通过单击自动完成下拉菜单选择名称,则 EmployeeNumber 值将由自动完成 jQuery 代码填充。如果用户只是键入名称并点击提交,则匹配由 forceCheck() 函数完成。当然,无论是否有第二个相同的名字,这个函数都会自动匹配第一个名字,但不幸的是,在我见过的最奇怪的怪癖中,for循环结束后的任何代码都不会被执行,即使循环中没有'return'语句。循环完成后,提交请求继续......这非常奇怪。

如果有人知道比这更好的方法,我将非常感谢您的回答 - 或者如果您知道为什么我的 forceCheck 函数的其余部分可能无法运行......否则,我明天将发布这篇文章作为我自己问题的答案,并在可能的情况下接受它(我相信两天后)。

最终更新

好吧,已经超过 24 小时(更多),所以我将我的解决方案发布为“答案”。如果仍然没有其他答案,我会再放几天然后接受它。