问题标签 [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.
ruby-on-rails - 奇怪的自动完成 + 密码记住行为
我很难弄清楚 Firefox 和 Chrome 如何确定密码的字段以及它们如何在其他表单上自动完成它们。
对于我的登录表单,我有这个:
该login_password_hash
字段用于在使用 Javascript 发送之前在客户端对密码进行哈希处理,禁用 Javascript 不会改变结果。
为了创建一个新用户,我有这个表格:
现在从登录表单保存密码并访问新用户表单后,保存的电子邮件将放在密码字段之前的最后一个字段中,并将密码放在密码字段中。
这会在 Firefox 和 Chrome 上发生,但不会在 Internet Explorer 上发生。关于为什么 Firefox 和 Chrome 会有这种行为的任何想法?这两种形式没有任何共同之处,名称和ID都不同。
apache-flex - flex 3 和自动完成
我试图让自动完成工作,当我在我的 mxml 中创建一个数组然后在初始化关键字中初始化文件顶部的 arrayCollection 时,我可以做得很好。
但是我想从 web 服务填充 arraycollection,但我似乎无法得到它;
我是我的应用程序标签,我有以下内容
然后在我的初始化方法中;
//当我从 userRequest.getAllCountries() 得到结果时调用它;
但是我的文本框没有得到任何价值。
有想法的人吗?
javascript - 使用 javascript 键入时缩小项目列表
我正在尝试找到一个插件或一种可靠的方法来缩小用户类型的项目列表。
本质上,会有一个始终可见的列表,其中包含供用户滚动浏览的产品名称。底部是一个表格,您可以在其中输入产品名称。当您键入时,列表会缩小。
我一直在尝试找到一种方法来调整像 jQuery UI 的自动完成这样的东西以这种方式工作,但是遇到了一些麻烦。
有人以前创造过这样的东西或有任何想法吗?
vb.net - 记住最近输入的值并可以自动完成的组合框
我正在 VB.NET 中开发桌面搜索引擎我正在使用 ComboBox 来指定搜索查询(字符串)。我希望 ComboBox 记住并显示最近的查询。我还希望 ComboBox 在用户键入时尝试自动完成查询。
实现这一点的最佳方法是什么?
forms - 谷歌风格的自动完成教程/示例
我有一个应用程序可以在填写输入字段时受益于谷歌风格的自动完成功能。
关于如何实现的任何指示,或者我可以提供帮助的包?
json - FilteringSelect 与 QueryReadStore:选择不粘
我正在使用由 adijit.form.FilteringSelect
支持的 adojox.data.QueryReadStore
以允许用户选择一个区域(想想“自动完成”机制)。在用户输入的每个字符上,QueryReadStore
都会向服务器发送一个请求,等待匹配区域的 json 列表(带有关联的 ID)。当显示足够短的列表时,用户选择了所需的项目。[诚然,每次击键查询并不是最有效的模式,但现在已经足够了。]
意外行为:在一些罕见但特定的场合,用户做出的选择“不坚持”。例如,如果用户键入“ can
”,她会按顺序看到以下选项:
如果她Canada
在其中选择“”,dijit 关闭下拉选择,正确选择了她的选择。但是当用户离开该字段时,选择切换到“ Atlantic Canada
”!
这种奇怪的现象系统地发生在少数特定地区。(起初,我认为这些行为不端的地区之间的共同因素是它们的名称包含重音字符或连字符,但加拿大的例子显然不是这样。到目前为止,我还没有发现一个规律的模式。)
我在任何地方都没有发现任何类似问题的提及。我非常愿意进行调查,但是,由于我是 dojo 的新手,在我求助于深入研究 dojo 的代码之前,我真的很感激指点:我应该首先看哪里?有哪些可能导致这种行为的问题?我可以排除某些假设吗?我应该如何最好地使用控制台(或 Firebug)来深入了解这一点?等等
dojo 1.1.1 和dojo 1.2.3 都会出现此问题。
这是(程序化)生成的FilteringSelect
:
编辑(2009/02/18):附加细节
按照 damelin 的回答,我想了解FilteringSelect
这种情况的看法。假设我将日志记录功能连接到FilteringSelect
的事件onChange
并且onBlur
,我得到以下逐个播放序列:
- 我单击该字段并输入:
can
- 出现 6 个区域的下拉列表(如上所列)
- 使用键盘光标,我将列表向下移动到“
Canada
”(这是 id 为 1 的区域) 我按下
/li>Enter
(从而选择商店的一个项目)。下拉列表现已消失,文本“Canada
”出现在字段中。此时,第一个事件被触发,记录如下:我按 离开场地
/li>tab
。在这里,两个事件一个接一个地被触发,顺序如下:
(区域 246 是Atlantic Canada
。)现在这很有趣......当我离开该字段时(onBlur),Canada
仍然是选定的值。神秘的交换在那之后才发生……
autocomplete - Notepad++ 和代码完成
有什么办法可以提高记事本++中的代码完成度?
目前它支持某种“静态”代码完成,它需要在 xml 文件中制作指令列表和它们的参数,或者它适用于打开文档中的单词列表。我正在寻找可以读取 *.h 文件并自动生成该列表并使用当前文件中的变量和函数的东西。
java - 如何使用 Swing 实现自动完成?
我有兴趣在 JFrame 中提供一个自动完成框。触发机制将基于助记符(我认为),但我不确定“自动完成框”使用什么(我希望在用户按键时过滤结果)。
你将如何实现这一点?某种 JFrame 或 JPopupMenu?
我想知道这是如何实现的,所以请不要发布指向可用 [J]Components 的链接。
c# - 自动完成并防止新输入 - 组合框
我怎样才能让我的程序的用户输入一个值并让它自动完成,但是,我还有什么可以阻止他们输入新数据,因为这会导致数据无法找到(除非你可以直接访问数据库)。
有谁知道如何做到这一点?
不使用下拉式组合框的原因是因为通过键入数据输入数据然后拒绝不属于列表选项的字符是因为它对用户来说更容易。
如果您使用过 Quickbook 的 Timer,那就是我想要的组合框样式。
c# - 如何动态更改 C# 组合框或文本框中的自动完成条目?
我在 C# 中有一个组合框,我想使用自动完成建议,但是我希望能够在用户键入时更改自动完成条目,因为可能的有效条目太多而无法AutoCompleteStringCollection
在启动时填充。
例如,假设我让用户输入名称。我有一个可能的名字列表(“Joe”、“John”)和一个姓氏列表(“Bloggs”、“Smith”),但如果我每个都有一千个,那么这将是一百万个可能的字符串 -太多,无法放入自动完成条目。因此,最初我只想将名字作为建议 ("Joe", "John") ,然后一旦用户输入了名字 ("Joe"),我想删除现有的自动完成条目并替换他们有一个新的集合,包括选择的名字和可能的姓氏(“Joe Bloggs”、“Joe Smith”)。为了做到这一点,我尝试了以下代码:
但是,这不能正常工作。似乎对 Clear() 的调用会导致自动完成机制“关闭”,直到下一个字符出现在组合框中,但是当然当下一个字符出现时,上面的代码再次调用 Clear(),所以用户永远不会实际上看到了自动完成功能。它还会导致组合框的全部内容被选中,因此在每次按键之间您必须取消选择现有文本,这使其无法使用。如果我删除对 Clear() 的调用,则自动完成工作,但似乎AddRange()
调用无效,因为我添加的新建议不会出现在自动完成下拉列表中。
我一直在寻找解决方案,并看到了各种建议,但我无法让它们中的任何一个工作 - 自动完成功能似乎被禁用,或者没有出现新字符串。这是我尝试过的事情的清单:
BeginUpdate()
在更改字符串之前和EndUpdate()
之后调用。- 调用
Remove()
所有现有字符串而不是 Clear()。 - 在我更新字符串时从组合框中清除文本,然后将其添加回来。
- 在我更改字符串时将其设置
AutoCompleteMode
为“None”,然后将其设置回“SuggestAppend”。 - 挂钩
TextUpdate
orKeyPress
事件而不是TextChanged
. - 每次都
AutoCompleteCustomSource
用新的替换现有的。AutoCompleteStringCollection
这些都没有帮助,即使是各种组合。 Spence建议我尝试覆盖ComboBox
获取要在自动完成中使用的字符串列表的函数。使用反射器,我在ComboBox
类中发现了一些看起来很有希望的方法 -GetStringsForAutoComplete()
和SetAutoComplete()
,但它们都是私有的,因此我无法从派生类访问它们。我不能再进一步了。
我尝试用 替换ComboBox
,TextBox
因为自动完成界面是相同的,我发现行为略有不同。它似乎工作得更好,因为TextBox
自动完成的附加部分工作正常,但建议部分没有 - 建议框短暂地闪烁,然后立即消失。
所以我想“好吧,我会在没有 Suggest 功能的情况下生活,而只使用 Append”,但是当我将其设置AutoCompleteMode
为 Append 时,我得到了访问冲突异常。Suggest 也会发生同样的事情 - 唯一不会引发异常的模式是SuggestAppend
,即使 Suggest 部分的行为不正确。
我认为使用 C# 托管代码时应该不可能出现访问冲突异常。 Avram建议我使用“锁定”来解决此问题,但我不知道我应该锁定什么 - 唯一具有 SyncRoot 成员的是AutoCompleteStringCollection
, 并且锁定不会阻止访问冲突异常。我也尝试锁定ComboBox
or TextBox
,但这也无济于事。据我了解, lock 只会阻止其他锁,所以如果底层代码没有使用 lock 那么我使用它不会有任何区别。
所有这一切的结果是我目前无法使用动态自动完成的 aTextBox
或 a 。ComboBox
有人对我如何实现这一目标有任何见解吗?
更新:
我还没有得到这个工作,但我发现了更多。也许其中一些会激发其他人提出解决方案。
我尝试用 替换ComboBox
,TextBox
因为自动完成界面是相同的,我发现行为略有不同。它似乎工作得更好,因为TextBox
自动完成的附加部分工作正常,但建议部分没有 - 建议框短暂地闪烁,然后立即消失。
所以我想“好吧,我会在没有 Suggest 功能的情况下生活,而只是使用 Append”,但是当我将其设置AutoCompleteMode
为 Append 时,我得到了访问冲突异常。Suggest 也会发生同样的事情 - 唯一不会引发异常的模式是SuggestAppend
,即使 Suggest 部分的行为不正确。
我认为在使用 C# 托管代码时应该不可能获得访问冲突异常,但无论如何,结果是我目前无法使用 aTextBox
或 aComboBox
任何类型的动态自动完成。有人对我如何实现这一目标有任何见解吗?
更新 2:
在尝试了各种其他事情(例如更改工作线程中的自动完成功能,并BeginInvoke()
用于模拟 PostMessage() 类型的行为之后,我终于放弃了,只是使用列表框实现了我自己的自动完成下拉菜单。它比内置的响应速度更快,而且我花在这方面的时间比我试图让内置的工作的时间少,所以任何想要这种行为的人的教训是 - 你可能会更好自己实施。