首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

jquery autocomplete 为什么小弟我得到的不是数组而是字符串

2012-04-12 
jquery autocomplete 为什么我得到的不是数组而是字符串jquery autocomplete 为什么我得到的不是数组而是

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和上面一样他就能出错。。。

热点排行