autocomplete结合ajax搜索框自动补全,后台返回的数组交给response不显示,求大神帮忙
这是我的代码,现在情况是,后台可以返回结果,但是最后交给response不显示<linkhref="/LabManage/autocomplete/jquery-ui.c...
这是我的代码,现在情况是,后台可以返回结果,但是最后交给response不显示
<link href="/LabManage/autocomplete/jquery-ui.css" />
<script type="text/javascript" src="/LabManage/autocomplete/jquery-1.9.1.js" ></script>
<script type="text/javascript" src="/LabManage/autocomplete/jquery-ui.js" ></script>
</head>
<body>
<label for="language">请输入指定的语言:</lable>
<input id="cxpname" name="language" type="text">
<script>
$("#cxpname").autocomplete({
// 通过函数自定义处理数据源
source: function(request, response){
// request对象只有一个term属性,对应用户输入的文本
// response是一个函数,在你自行处理并获取数据后,将JSON数据交给该函数处理,以便于autocomplete根据数据显示列表
$.ajax( {
'url': '/LabManage/ckgl/product/queryProduct.action',
data:{
cxpname: request.term
},
type: 'post',
dataType: 'json',
success: function(dataObj){
/*var availableTags = [
"中国",
"中华人民共和国",
"中国公民",
"中国国籍",
"酒瓶",
"红酒",
"酒精灯",
"酒精"
];
alert(availableTags); 担心后台返回的json数据格式不正确,调试时候自定义数组availableTags也不显示*/
//后台返回数据格式为{"id1":"123","id2":"234"}
response(avdataObj //将数据交给autocomplete去展示
}
} );
},
minLength : 1
});
</script>
谢谢大家,后来自已发现问题原因了,不能用alert();,为了调试所以加了alerta().把它注释掉就可以了 展开
<link href="/LabManage/autocomplete/jquery-ui.css" />
<script type="text/javascript" src="/LabManage/autocomplete/jquery-1.9.1.js" ></script>
<script type="text/javascript" src="/LabManage/autocomplete/jquery-ui.js" ></script>
</head>
<body>
<label for="language">请输入指定的语言:</lable>
<input id="cxpname" name="language" type="text">
<script>
$("#cxpname").autocomplete({
// 通过函数自定义处理数据源
source: function(request, response){
// request对象只有一个term属性,对应用户输入的文本
// response是一个函数,在你自行处理并获取数据后,将JSON数据交给该函数处理,以便于autocomplete根据数据显示列表
$.ajax( {
'url': '/LabManage/ckgl/product/queryProduct.action',
data:{
cxpname: request.term
},
type: 'post',
dataType: 'json',
success: function(dataObj){
/*var availableTags = [
"中国",
"中华人民共和国",
"中国公民",
"中国国籍",
"酒瓶",
"红酒",
"酒精灯",
"酒精"
];
alert(availableTags); 担心后台返回的json数据格式不正确,调试时候自定义数组availableTags也不显示*/
//后台返回数据格式为{"id1":"123","id2":"234"}
response(avdataObj //将数据交给autocomplete去展示
}
} );
},
minLength : 1
});
</script>
谢谢大家,后来自已发现问题原因了,不能用alert();,为了调试所以加了alerta().把它注释掉就可以了 展开
1个回答
展开全部
$.ajax({
url : servletUrl,
type : "post",
data : params,
dataType : 'JSON',
success : function(result) {
$('#inputText').flushCache();
$('#inputText').autocomplete(result.data, {
minChars: 0,
max: 16,
matchContains: true,
width: 400,
scrollHeight: 400,
scroll: false,
formatItem : function(row, i, max) {
return "<span class='autoleft'>" + row.toString() + "</span>";
},
formatMatch : function(row, i, max) {
return row.toString();
},
formatResult : function(row) {
return row.toString();
}
}).result(function(event, row, formatted) {
$('#inputText').val(row.toString());
});
},
error : function() {
alert('加载数据失败');
}
});
url : servletUrl,
type : "post",
data : params,
dataType : 'JSON',
success : function(result) {
$('#inputText').flushCache();
$('#inputText').autocomplete(result.data, {
minChars: 0,
max: 16,
matchContains: true,
width: 400,
scrollHeight: 400,
scroll: false,
formatItem : function(row, i, max) {
return "<span class='autoleft'>" + row.toString() + "</span>";
},
formatMatch : function(row, i, max) {
return row.toString();
},
formatResult : function(row) {
return row.toString();
}
}).result(function(event, row, formatted) {
$('#inputText').val(row.toString());
});
},
error : function() {
alert('加载数据失败');
}
});
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询