- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试使用 twitter-typeahead-rails
。我的意图是在我输入“#Typeahead”输入框时通过下拉框建议模型“User”的实例。但是,当我键入时没有任何反应。
有人看到我的代码有什么问题吗?
gem 文件:
gem 'twitter-typeahead-rails'
layouts/application.js:
//= require twitter/typeahead
//= require twitter/typeahead/bloodhound
config/routes.rb:
get 'typeahead/:query' => 'users#typeahead'
controllers/users_controller.rb:
def typeahead
render json: User.where(name: params[:query])
end
views/users/show.html.erb:
<input type="text" id="typeahead">
<script type="text/javascript">
var bloodhound = new Bloodhound({
datumTokenizer: function (d) {
return Bloodhound.tokenizers.whitespace(d.value);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: '/typeahead/%QUERY',
limit: 50
});
bloodhound.initialize();
$('#typeahead').typeahead(null, {
displayKey: 'name',
source: bloodhound.ttAdapter()
});
$('#typeahead').bind('typeahead:selected', function(event, datum, name) {
doSomething(datum.id);
});
</script>
我在 Web 控制台中没有收到任何错误,并且显然包含了所有必要的文件:
页面源
<script data-turbolinks-track="true" src="/assets/twitter/typeahead.bundle.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/twitter/typeahead.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/twitter/typeahead/bloodhound.js?body=1"></script>
网络控制台:
最佳答案
编辑 1
尝试用这个包装 javascript 代码:
$(document).ready(function(){
/* the bloodhound, typeahead and bind script */
})
有可能它绑定(bind)的元素在执行 javascript 代码时尚未初始化。
编辑 2
尝试改变:
render json: User.where(name: params[:query])
进入:
q = params[:query]
render json: User.where('name LIKE ?', "%#{q}%")
# alternate syntax:
#render json: User.where('name LIKE :x', x: "%#{q}%")
# or when you want case-insensitive search:
#q = params[:query].to_s.downcase
#render json: User.where('LOWER(name) LIKE ?, "%#{q}%")
所以建议会给出所有带有子字符串的结果,而不是完全匹配。
旧答案
这不是正确答案,但值得一试。这适用于调试任何网络应用程序/ajax 应用程序。
要进行调试,首先,您需要使用 google-chrome
、firefox
或 opera
,右键单击
code> 并执行 inspect element
,现在尝试在 typeahead 输入字段上键入。是否有带数字的红色图标出现?比如:
如果有,只需访问控制台
标签:
然后查看导致错误的 javascript 部分,修复它(或者您可以在评论中告诉我)。
一些可能的错误是:
如果没有错误,点击网络选项卡:
在键入预输入字段时查找发送的 ajax,首先检查 headers
子选项卡,让用户确保 Form Data
是正确的(您正在发送向服务器发送正确的消息)。
其次查看response
子标签,是否正确?如果不正确(服务器提供错误的输出/格式),则服务器端有问题,请检查生成响应的 Controller /操作的来源(请参阅 Rails 日志或 headers
子选项卡)。如果它已经正确,很可能是库的错误。
如果没有特定的错误消息,我们无法再为您提供帮助,因为我相信仅仅重现您的代码(安装 ruby+rails+gems、设置一个表、创建模型和粘贴内容)就需要相当长的时间你在问题中写的)。
关于javascript - Twitter-Typeahead 不提供建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28143198/
在我的 html 页面中,我尝试添加 Typeahead 以进行自动完成,但我无法解决与 TypeError 和 ReferenceError 相关的问题。 我在 CodePen 上尝试了一个示例,工
我已经使用 npm 安装了 typeahead.js。根据我的阅读,这包括预输入和猎犬。 然后我在我的模块中需要 jquery 之后需要它。 但现在当我打电话 new Bloodhound() Blo
我正在尝试使用Twitter提前输入,但遇到了问题。我不知道如何提前将字符串传递给服务器。是通过GET参数吗?如果是这样,该参数的名称是什么? 最佳答案 通过GET参数最简单,您可以选择所需的任何参数
看起来 CSS 不适用于我的 Typeahead。 我正在尝试重现可滚动下拉菜单,例如 https://twitter.github.io/typeahead.js/examples 这是我的代码:
我正在这样设置 typeahead: $this.typeahead({ prefetch: $this.data('url-prefetch'),
我有一个 Typeahead 实例拉入一个列出机场的远程 JSON 对象,我需要按“位置组”将它们分组到建议中,如下图所示: ...这里是如何格式化 JSON 的示例: { "locations
作为标题,我想问:“是否可以限制预先输入显示的建议?” 例如,我有 3 个数据集,每个数据集有 10000 个结果(来自查询)。主题以字符 t 开头大约有 3000 个结果或可能更多。 如果我输入 t
我想实现的功能是,如果我点击一个 DOM 元素,它会自动填充其中包含指定值的预先输入,它应该为此触发 typeahead:selected。 我发现了很多与之相关的查询,答案是 jQuery#type
首先,请检查:http://ws.luyencong.net/data/search/query.php?do=advanced 您可以将该 JSON 的所有内容粘贴到此处:http://pro.js
我一直在尝试结合几个功能 in typeahead plugin特别是多数据集 + 空 + 默认建议。到目前为止没有运气,希望有人可以帮助 现在,为了使其工作,它是多个数据集之间的选择---或---空
我正在尝试将预输入结果放入页面上的特定 div 中。我获得了 JSON 回调数据,但我不知道如何使用它来填充特定的 div。 process 函数的唯一作用是在搜索字段下方列出结果,无论其长度如何。
正如在 screenshot - 使用 typeahead 时如何禁用自动填充? 谢谢。 附注: 使用的浏览器是 Chrome 版本 47.0.2526.106(64 位) 最佳答案 添加 autoc
正如在 screenshot - 使用 typeahead 时如何禁用自动填充? 谢谢。 附注: 使用的浏览器是 Chrome 版本 47.0.2526.106(64 位) 最佳答案 添加 autoc
我使用的是 0.11.1 版的 Twitter Typeahead。现在我正试图让远程工作正常,但不知何故我认为我的行为很奇怪。 这是使用本地数组的工作代码: var localArray = [{"
我试过在 web 应用程序中应用 twitters typeahead 插件。我使用 typeahead 插件初始化了许多 typeahead 输入字段,这似乎以某种方式起作用。该插件栩栩如生。然而,
所以我使用Materialziecss和第三方库进行标签输入 Materializecss:http://materializecss.com/ Materialize 标签库:http://henr
我想用 Typeahead JS 做一个简单的自动完成但我不能让它工作。我按照手册中的说明进行操作,但我不确定我在这里做错了什么。我无法从 json 文件中获取正确的值。它是一个带有对象的数组,我只想
我有一个 Angular uib-typeahead。这是我创建的 plunkr 的链接。 https://plnkr.co/edit/8XwhSXsZlyd0oKSljS9t?p=preview .
我实际上想发送我选择的主题(一个包含许多变量的 json 对象),而不是存储在 topicsPopulate 中的字符串(主题名称)。Topics 是一个主题数组,一个主题看起来像这样, {
我正在尝试使用带有 react-bootstrap-typeahead 的旧 jQuery typeahead 来复制搜索字段。它查询使用多个异步数据源,并显示按这些数据源的返回分组的结果。 例如,如
我是一名优秀的程序员,十分优秀!