请较:autocomplete只能匹配一次的问题
时间:2009-09-22
来源:互联网
问题:
后台返回数据中有"baidu","google","tencent","sohuwang","网易","甲乙丙丁张三李四", 在输入框第一次输入甲,可以匹配出甲乙丙丁张三李四",刷新页面重新输入甲,不能匹配出;但是输入甲乙,可以匹配出,但是刷新页面后,输入甲乙又不能匹配出了,只有输入甲乙丙才行;
总的来说就是输入的只能匹配一次,下次就不行了;
前台JSP:
$(document).ready(function(){
$("#text2").autocomplete("/AutoCompleteServlet2",{
minChars: 0, //激活自动完成的输入字符数
max: 15, //列表里显示条数,默认为10
matchContains: true, //只要包含输入字符就会显示提示
autoFill: false, //自动填充输入框
mustMatch: true, //与否必须与自动完成提示匹配
scrollHeight: 200, //显示下拉的列表框长度
dataType: 'json', //数据格式
parse: function(data){ //转换数据格式
var rows = [];
for(var i=0;i<data.length;i++){
rows[rows.length] = {
data: data.name, //下拉框显示数据格式
value: data.id + "-" +data.name, //选定后实际数据格式
result: data.name //选定后输入框显示数据格式
};
}
return rows;
},
formatItem: function(data,i,total){
return data;
}
});
function findValueCallback(event,data,formatted){
alert(data);
}
});
<input type="text" id="text2"><input type="button" id="btn" value="取值">
<div id="content"></div>
后台servlet:
public class AutoCompleteServlet2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.write(getJson());
out.flush();
out.close();
}
/**
* autocomplete默认调用的是doGet方法
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
private String getJson(){
//实际值
String[] id = {"1111111","2222222","3333333","4444444","5555555","6666666"};
//页面显示值
String[] name = {"baidu","google","tencent","sohuwang","网易","甲乙丙丁张三李四"};
StringBuffer sb = new StringBuffer("[");
for(int i = 0;i < id.length;i++){
sb.append("{id:'" + id + "',name:'" + name + "'},");
}
sb.deleteCharAt(sb.lastIndexOf(",")).append("]");
return sb.toString();
}
}
后台返回数据中有"baidu","google","tencent","sohuwang","网易","甲乙丙丁张三李四", 在输入框第一次输入甲,可以匹配出甲乙丙丁张三李四",刷新页面重新输入甲,不能匹配出;但是输入甲乙,可以匹配出,但是刷新页面后,输入甲乙又不能匹配出了,只有输入甲乙丙才行;
总的来说就是输入的只能匹配一次,下次就不行了;
前台JSP:
$(document).ready(function(){
$("#text2").autocomplete("/AutoCompleteServlet2",{
minChars: 0, //激活自动完成的输入字符数
max: 15, //列表里显示条数,默认为10
matchContains: true, //只要包含输入字符就会显示提示
autoFill: false, //自动填充输入框
mustMatch: true, //与否必须与自动完成提示匹配
scrollHeight: 200, //显示下拉的列表框长度
dataType: 'json', //数据格式
parse: function(data){ //转换数据格式
var rows = [];
for(var i=0;i<data.length;i++){
rows[rows.length] = {
data: data.name, //下拉框显示数据格式
value: data.id + "-" +data.name, //选定后实际数据格式
result: data.name //选定后输入框显示数据格式
};
}
return rows;
},
formatItem: function(data,i,total){
return data;
}
});
function findValueCallback(event,data,formatted){
alert(data);
}
});
<input type="text" id="text2"><input type="button" id="btn" value="取值">
<div id="content"></div>
后台servlet:
public class AutoCompleteServlet2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.write(getJson());
out.flush();
out.close();
}
/**
* autocomplete默认调用的是doGet方法
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
private String getJson(){
//实际值
String[] id = {"1111111","2222222","3333333","4444444","5555555","6666666"};
//页面显示值
String[] name = {"baidu","google","tencent","sohuwang","网易","甲乙丙丁张三李四"};
StringBuffer sb = new StringBuffer("[");
for(int i = 0;i < id.length;i++){
sb.append("{id:'" + id + "',name:'" + name + "'},");
}
sb.deleteCharAt(sb.lastIndexOf(",")).append("]");
return sb.toString();
}
}
作者: liuccc1 发布时间: 2009-09-22
我的邮箱:[email protected] ,有高手有无此问题的例子可以发份给我学习学习
不知你们的是否有同样的问题:后台数据baidu","google","tencent","sohuwang","网易","甲乙丙丁张三李四, 我的是第一次输入b,可以匹配出baidu(下拉框只有baidu),刷新页面,再次输入b,下拉框全部显示,只是baidu的字母b颜色变粗,但是不会显示成只有baidu的情况;输入ba又可以匹配了。
还有个明显的情况是输入ba的方法,先输入b,再输入a,可以匹配baidu; 如果一次输入ba ,很多时候不能匹配;
现在我要的效果是一次输入一个字母,就能够准确匹配; (这问题我已经弄了2天了,还是不行)
不知你们的是否有同样的问题:后台数据baidu","google","tencent","sohuwang","网易","甲乙丙丁张三李四, 我的是第一次输入b,可以匹配出baidu(下拉框只有baidu),刷新页面,再次输入b,下拉框全部显示,只是baidu的字母b颜色变粗,但是不会显示成只有baidu的情况;输入ba又可以匹配了。
还有个明显的情况是输入ba的方法,先输入b,再输入a,可以匹配baidu; 如果一次输入ba ,很多时候不能匹配;
现在我要的效果是一次输入一个字母,就能够准确匹配; (这问题我已经弄了2天了,还是不行)
作者: liuccc1 发布时间: 2009-09-23
我和你遇到同样的问题
我用的是struts2
我用的是struts2
作者: sss520 发布时间: 2009-09-24
兄弟解决了这样的问题请帖出来看看
作者: sss520 发布时间: 2009-09-24
到目前为止还是没有解决,不管是否使用struts2,问题都是一样的,期待高手相助
作者: liuccc1 发布时间: 2009-09-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28