jQuery 输入联想数据,怎么得全部json传的数据。 谢谢

请叫我带角凹凸曼 2014-06-10 02:57:09
javascript 代码


<script>
$(document).ready(function()
{
// 联想数据
$("#suggestionName").autocomplete('search',
{
matchContains: true,
minChars: 0,
scroll: false,
scrollHeight: 500,
width: 400,
extraParams: {name:function(){
return $('#suggestionName').val();
}},
dataType: "json",
mustMatch:false,
parse: function(data) {
return $.map(data, function(row) {
return {
data: row,
value: row.name,
result: row.name
}
});
},
formatItem: function(data,i,max) {
// 该怎么迭代json传的map数据?
return data.name;

}
}).result(function(data) {
return data.name;
});
});
</script>




//Java后台代码

// 转换乱码
name=new String(name.getBytes("ISO-8859-1"),"utf-8");

// 等到公司信息
List<Company> comList = indexService.findCompany(name, name);

// 创建map 存放json需要的数据
Map<String, Object> map = new HashMap<String, Object>();

if(comList != null)
{
for (int i = 0; i < comList.size(); i++)
{
// 我输入name得打很多条数据,我打算把map的key用name+i 做唯一的key,但是前台的js代码不知道怎么迭代。 /////用for来迭代要出错。
map.put("name"+i, comList.get(i).getCompanyName() +" "+ comList.get(i).getCompanyInfo());
}
}

getResponse().setContentType("ext/json;charset=UTF-8");
// 转换成json数据
JSONArray jsonArray = JSONArray.fromObject(map);

PrintWriter out = this.getPrintWriter();

getResponse().setCharacterEncoding("UTF-8");
out.write(jsonArray.toString());
out.flush();
out.close();



求指教.
...全文
66 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
人呢. 求解答啊
插件使用配置(config)还是很灵活的,当然也是弊端,配置不当,效果就没了。 使用时候,重要的参数如下(此demo参数配置点击右键看源码): url: 'http://suggest.taobao.com/sug?code=utf-8&extras=1', queryName: 'q', //url?queryName=value,默认为输入框的name属性 jsonp: 'callback', //设置此参数名,将开启jsonp跨域功能(我要调淘宝数据,非跨域不可,淘宝的回调参数名就是callback),否则使用json数据结构 item: 'li', //下拉提示项目单位的选择器,默认一个li是一条提示,与processData写法相关。 processData: function(data){ }//自定义处理返回的数据,该方法可以return一个html字符串或jquery对象,将被写入到提示的下拉层中。 右键查看源码,将看到本demo所编写的processData函数是怎样的,所以这个参数是把如何表现交给你来做了,但别忘了配合 item 参数 getCurrItemValue: function($currItem){ }//定义如何去取得当前提示项目的值并返回值,插件根据此函数获取当前提示项目的值,并填入input中,此方法应根据processData参数来定义。 是的,如果你自定义了processData,这个参数恐怕也需要自定义,默认是获取$currItem.html(),你也可以return $currItem.attr('an attrName'); 右键查看源码,将看到本demo所编写的getCurrItemValue函数是怎样的 textchange: function($input){}, //不同于change事件在失去焦点触发,inchange依赖本插件,只要内容有变化,就会触发,并入input对象 onselect: function($currItem){} //当选择了下拉的当前项目时执行,并入当前项目。比如选择了某个提示项目,就提交表单。 sequential: 0, //按着方向键不动是否可以持续选择,默认不可以,设置值可以是任何等价的boolean

87,921

社区成员

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

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