$().autocomplate

颐牟权月 2016-06-07 05:35:13
jquery的autocomplate遇到了点问题,不是jquery UI。
具体是什么情况能,
如果我返回一个JSON数组["admin1","admin"]
理想的情况应该是 出现两行下拉

输入框
admin1
admin2

但是返回的JSON的数组直接被当成了一窜字符串。出现的结果就是
输入框
["admin1","admin2"]

只有一行选择框。
下面附上代码

$("#sampleForm input[name='receiver']").autocomplete("${base}/admin/admin/query.jhtml", {
})


@RequestMapping(value = "/query", method = RequestMethod.GET)
public
@ResponseBody
String query(String q) {
List<String> data = adminService.queryUserByName(q).stream().map(admin -> admin.getUsername()).collect(Collectors.toList());
return JsonUtils.toJson(data);
}


csdn上传图片从来没成功过,见谅。
...全文
171 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
颐牟权月 2016-06-12
  • 打赏
  • 举报
回复
引用 4 楼 showbo 的回复:
[quote=引用 3 楼 wjm1993 的回复:] [quote=引用 1 楼 showbo 的回复:] 浏览器直接访问${base}/admin/admin/query.jhtml看输出什么,应该不是["admin1","admin2"]这个内容。。
Resonse "[\"admin\",\"admin1\"]" 是这个。[/quote] 你这个是字符串了。。不是json字符。。自己修改动态页返回["admin1","admin2"]这种数据,如果是函数一般返回的类似List<string>这种类型的,而不是string类型[/quote] 解决啦,返回类型除了JSON数组,还可以接收用"\n "拼接的字符串。 String result = "c++\n java \n php \n coldfusion \n javascript"; 类似这样的字符串,遍历插入"\n "就好了,非常感谢版主的热心帮助。不过感觉不是json数组终究不是正道。
颐牟权月 2016-06-12
  • 打赏
  • 举报
回复
引用 4 楼 showbo 的回复:
[quote=引用 3 楼 wjm1993 的回复:] [quote=引用 1 楼 showbo 的回复:] 浏览器直接访问${base}/admin/admin/query.jhtml看输出什么,应该不是["admin1","admin2"]这个内容。。
Resonse "[\"admin\",\"admin1\"]" 是这个。[/quote] 你这个是字符串了。。不是json字符。。自己修改动态页返回["admin1","admin2"]这种数据,如果是函数一般返回的类似List<string>这种类型的,而不是string类型[/quote] 返回List<String>类型页面会报错 chrome输出的错误信息 VM10583:1 Uncaught TypeError: c.split is not a function 所以我用JsonUtils把List转成了String返回,现在的问题应该是在controller的方法里修改返回正确的JSON类型还是修改jquery对数据进行处理呢?
Go 旅城通票 2016-06-12
  • 打赏
  • 举报
回复
引用 3 楼 wjm1993 的回复:
[quote=引用 1 楼 showbo 的回复:] 浏览器直接访问${base}/admin/admin/query.jhtml看输出什么,应该不是["admin1","admin2"]这个内容。。
Resonse "[\"admin\",\"admin1\"]" 是这个。[/quote] 你这个是字符串了。。不是json字符。。自己修改动态页返回["admin1","admin2"]这种数据,如果是函数一般返回的类似List<string>这种类型的,而不是string类型
颐牟权月 2016-06-12
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
浏览器直接访问${base}/admin/admin/query.jhtml看输出什么,应该不是["admin1","admin2"]这个内容。。
Resonse "[\"admin\",\"admin1\"]" 是这个。
howsun_zh 2016-06-08
  • 打赏
  • 举报
回复
前端的问题别邀我回答啊,我不是搞前端的。不过这个问题凭我的经验看,肯定是autocomplete没有去解析Json,下面给个例子,更详细的要去官方看下文档。

$("#sampleForm input[name='receiver']").autocomplete({
   source: function( request, response ) {
      $.ajax({
        url: "${base}/admin/admin/query.jhtml",
        type: "POST",
        dataType: "json",
        data: {term: request.term},
        success: function(data) {
          response(data);
        }
      });
    } 
});
Go 旅城通票 2016-06-07
  • 打赏
  • 举报
回复
浏览器直接访问${base}/admin/admin/query.jhtml看输出什么,应该不是["admin1","admin2"]这个内容。。

87,903

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧