在 jquery 自动完成插件中,数据没有被解析为 json
Posted
技术标签:
【中文标题】在 jquery 自动完成插件中,数据没有被解析为 json【英文标题】:data not getting parsed as json in jquery auto complete plugin 【发布时间】:2012-01-29 06:15:34 【问题描述】:我想在 Rails 应用程序中实现自动完成功能。我正在使用 jquery 自动完成插件。
我想为以下数组实现自动完成功能。
@testers = User.find_by_sql("select * from users where id in(select user_id from user_role_assignments where role_id in (select id from roles where name like 'Tester')) order by name").paginate(:page=>params[:page],:per_page=>30)
我想以 json 格式将其传递给 .js 文件。我尝试在我的视图文件中使用下面的代码。但是自动完成没有填充数据。
= form.label :tester_tokens, "Testers"
= form.text_field :tester_tokens
- @testers.each do |tester|
%tr
%td=tester.name
%td=check_box_tag "release[tester_ids][]", tester.id, @release.is_tester_assigned(tester)
//=will_paginate @testers
:javascript
var data="#escape_javascript @testers.to_json";
= javascript_include_tag :defaults,:cache => true
我的 .js 文件:
$(document).ready(function()
$.parseJSON(data);
alert (data);
$('#release_tester_tokens').autocomplete(source:data);
);
请帮帮我。
【问题讨论】:
【参考方案1】:您正在丢弃 $.parseJSON
返回的值。
$(function()
data = $.parseJSON(data);
console.log(data);
$('#release_tester_tokens').autocomplete(source:data);
);
【讨论】:
嗨,马特,谢谢你回答我。我改变了它。仍然对我不起作用 嗨,马特,我无法在 IE 中看到控制台输出。我尝试将其作为警报消息提供。我收到 2 个警报消息,其中一个包含所有名称,其他为空 您将不得不提供更多信息,例如SSCCE。 jsFiddle 怎么样?其他问题:浏览器在解析之前看到data
的值是多少?我什至不知道您如何获得 2 个警报,因为您没有显示任何使用超过 1 个警报的代码。你用的是什么版本的IE? IE8+ 有一个可以与console.log
配合使用的控制台,而console.log
通常比alert
更适合调试。
嗨,马特,控制台输出给了我这个,[“aaloshious”,“aarul”,“aaziz”,“abaher”,“abain”,“abalteanu”,“abencz”,“abennett” , “abenoy”, “aberkovich”, “abhose”, “abirchall”, “abouchard”, “abrezinov”, “aburden”, “aburt”, “acar”, “acarver”, “acase”, “acatana”, “ achandel”、“achandrasekaran”、“achaudhary”、“achen”、“agillera”、“agrodzki”、“agroisman”、“agurusamy”、“ahalimi”、“ahamu”、“ahan”、“ahardie”、“dbrovkovich” , “dbyron”, “dcelestine”, “dchacon”, “dchapeskie”, “dchappelle”, “dcocca”, “dcole”, “dcostanzino”, 1157 更多...]
是解析前还是解析后?这看起来不像valid JSON。以上是关于在 jquery 自动完成插件中,数据没有被解析为 json的主要内容,如果未能解决你的问题,请参考以下文章