jquery autocomplete 为什么我得到的不是数组而是字符串
jquery autocomplete 为什么我得到的不是数组而是字符串?
- HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><html><head> <script type="text/javascript" src="plugins/jquery/js/jquery.js"></script> <script type='text/javascript' src='plugins/jquery/js/jquery.autocomplete.js'></script> <link rel="stylesheet" type="text/css" href="plugins/jquery/css/jquery.autocomplete.css" /> <script type="text/javascript"> $(document).ready(function() { $("#labTime").html("time:" + new Date()); setInterval('$("#labTime").html("time:" + new Date());', 1000); //var cities = ["中文","中国","国家","中文国家"]; //$("#content").focus().autocomplete(cities,{matchContains: true,minChars: 1}); initialComplete(null); }); function initialComplete(data){ $("#content").focus().autocomplete("test!getList", { delay:10, minChars:1, matchSubset:0, matchContains:true, cacheLength:10, autoFill:true }); } </script></head><body> <center> <div> <h4 id="labTime"></h1> <form action="test!execute" method="post"> <img src="images/psb.jpg" width="500px" height="200px"></img><br> <input type="text" name="content" size="50" id="content" /> <input type="submit" value="Search"> </form> </div> </center></body></html>
下面是action的代码
- Java code
public String getList() throws Exception { System.out.println("content:(" + content + ") q:(" + q + ")"); //String[] str = {"中文","中国","国家","中文国家"}; String[] str = {"a文","a国","家a","b文国家"}; HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=utf-8"); PrintWriter out; out = response.getWriter(); List list = new ArrayList(); for(int i = 0 ; i < str.length; i ++){ list.add(str[i]); } JSONArray array = JSONArray.fromObject( list ); out.println(array.toString()); out.close(); return null; }
我的输入框提示一行["a文","a国","家a","b文国家"],而不是4行数据
[解决办法]
你输入框只有一行,怎么来4行呢?
而且http传输都是以字符串传输的,没有对象和数据的概念。
文本框里的内容也全是字符,没有数据的概念。
[解决办法]
下拉框是select+option,不是input。
再说如果没用框架,它也没这么智能,自动把你的数据组装成select
[解决办法]
需要jQuery 指定下返回数据的格式,并且 你返回的是json 字符串 如果前台不指定的话 需要用json.js 转换为json 对象 就可以用 a.b的形式取值 json.js 可以在网上随便下一个
------解决方案--------------------
可以自己转成json对象
[解决办法]
没有那么智能 自己组装下, 以前也写过和后台交互的异步下拉框组件,也是自己拼接
[解决办法]
我这么试了下,是可以搜索出来结果的!!!
- HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>jQuery Autocomplete Plugin</title><script type="text/javascript" src="../lib/jquery.js"></script><script type='text/javascript' src='../jquery.autocomplete.js'></script><link rel="stylesheet" type="text/css" href="../jquery.autocomplete.css" /> <script type="text/javascript">$().ready(function() { var cities = ["a中文","a中国","a国家","中文国家","a"]; $("#suggest1").focus().autocomplete(cities);});</script> </head><body><h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/">jQuery Autocomplete Plugin</a> Demo</h1><div id="content"> <form autocomplete="off"> <p> <label>Single City (local):</label> <input type="text" id="suggest1" /> </p> <p> </form> </div><script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script><script type="text/javascript">_uacct = "UA-2623402-1";urchinTracker();</script></body></html>
[解决办法]
你把你的数据给我一部分,我试一下?
[解决办法]
我用的不是action,我的意思是你把你返回的data发出来一部分,我用我这的方法试一下,行得通的话你换成我的不就得了
[解决办法]
这样有问题?????
- HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><html><head> <script type="text/javascript" src="plugins/jquery/js/jquery.js"></script> <script type='text/javascript' src='plugins/jquery/js/jquery.autocomplete.js'></script> <link rel="stylesheet" type="text/css" href="plugins/jquery/css/jquery.autocomplete.css" /> <script type="text/javascript"> $(document).ready(function() { $("#labTime").html("time:" + new Date()); setInterval('$("#labTime").html("time:" + new Date());', 1000); //var cities = ["中文","中国","国家","中文国家"]; //$("#content").focus().autocomplete(cities,{matchContains: true,minChars: 1}); initialComplete(); }); function initialComplete(){ //var data = ["中文","中国","国家","中文国家"]; var data = "test!getList"; $("#content").focus().autocomplete(data); } </script></head><body> <center> <div> <h4 id="labTime"></h1> <form action="http://www.baidu.com/s" method="get"> <img src="images/repository.png"></img><br> <input type="text" name="wd" size="50" id="content" /><br> <input type="submit" value="Search"> <input type="button" value="Luckly"> </form> </div> </center></body></html>
[解决办法]
我这里测试是没有问题的。。。呵呵呵,不知道什么情况,你把数据换成其他的试试??
[解决办法]
给你修改了下,在不行就真没招了
- HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>jQuery Autocomplete Plugin</title><script type="text/javascript" src="../lib/jquery.js"></script><script type='text/javascript' src='../lib/jquery.bgiframe.min.js'></script><script type='text/javascript' src='../lib/jquery.ajaxQueue.js'></script><script type='text/javascript' src='../lib/thickbox-compressed.js'></script><script type='text/javascript' src='../jquery.autocomplete.js'></script><script type='text/javascript' src='localdata.js'></script><link rel="stylesheet" type="text/css" href="main.css" /><link rel="stylesheet" type="text/css" href="../jquery.autocomplete.css" /><link rel="stylesheet" type="text/css" href="../lib/thickbox.css" /> <script type="text/javascript"> //var data = "test!getList"; var data = ["a中文","a中国","a国家","a中文国家"]; $(document).ready(function() { $("#labTime").html("time:" + new Date()); setInterval('$("#labTime").html("time:" + new Date());', 1000); //var cities = ["中文","中国","国家","中文国家"]; $("#content").focus().autocomplete(data); }); </script></head><body> <center> <div> <h4 id="labTime"></h1> <form action="http://www.baidu.com/s" method="get"> <img src="images/repository.png"></img><br> <input type="text" name="wd" id="content" /><br> <input type="submit" value="Search"> <input type="button" value="Luckly"> </form> </div> </center></body></html>
[解决办法]
我发现和你沟通有一点小小得问题,什么叫用url有问题? 你的data不就从url返回的么?
那你调试看一下url返回的data对不对?我就不信返回的data和上面一样他就能出错。。。