+ -
当前位置:首页 → 问答吧 → 熟悉官方AutoComplete插件的朋友帮忙看看

熟悉官方AutoComplete插件的朋友帮忙看看

时间:2009-05-28

来源:互联网

我的AUTOCOMPLETE是官方提供的那个,我需要实现的功能是输入中文简写,就出自动提示。基本上是完成了,但是只有第一个输入的字符能触发AJAX提交查询,以后就不触发了,始终搞不懂是怎么回事情。
$("#TestComplete").autocomplete("AutoCompleteAjax.aspx",{
        autoFill:true,
        delay:100,
        minChars:1,
        matchSubset:1,
        cacheLength:1,
        max:8,
        extraParams:{searchtype:"nameSearch"}
    });

我用的是ASP.NET 是另外弄了个页面在RESPONSE.WRITE ,我跟踪了一下,除了第一个字符触发了AJAX提交的查询,后面的字符都没出发,我开始以为是要加时间戳,但是用扩展参数加了时间戳仍然不能提交1个以后的。我输入W 就能查出一堆,然后输入WZ,就没反映了,这个控件根本就不提交了。

有熟悉这个控件的朋友给帮忙说说,不省感激,我在IE7和IE8下试了都是一样。

作者: xjy4455   发布时间: 2009-05-28

想了半天,终于知道是怎么回事情了,先详细描述下.我在数据库存一张表,里面有中文名称和简写(拼音首字母),我在另外一个页面接收到传过去的查询参数Q之后,每次都会在根据参数Q,查询数据库(用户输入的是拼音简写),然后RESPONSE.WRITE到页面上,我用的是数据项+\n的办法,所以在原来的页面收到的回传的全是中文的数据项,打第一个字符的时候,触发AJAX,在服务器上查了一堆中文的结果回来,再打第二个字符的时候这个autocomplete实际上是在刚才返回的结果集里面去比对的,结果集是中文的,输入的却是拼音首字母,当然就找不到了。难怪我加了断点,第一个字符才执行,后面的字符不执行。
现在就是不知道怎么搞,让系统敲第二个字符也去调用AJAX,而不是在第一次返回的结果集里面查。

作者: xjy4455   发布时间: 2009-05-30

官方的那个demo,在压缩包中demo/search.php里有这么一句话:
foreach ($items as $key=>$value) {
    if (strpos(strtolower($key), $q) !== false) {
        echo "$key|$value\n";
    }
}
注意后面这个打印时候的这个“\n”,在php里,它只是在回调的html源文件里显示回车换行,而不是在前台显示的时候换行,我用asp写的,是改成这样文件名search.asp
1首先从数据库里查出城市名,然后循环所有的城市名,组合成一个字符串
strCitys="Beijing|Changchun|Changsha|Chengdu|Chongqing|Dunhuang|Fuzhou|Guangzhou|Guilin|Guiyang|Haikou|Hangzhou|Harbin|Hefei|Hohhot|Hong Kong|Jinan|Kashgar|Kunming|Lanzhou|Lhasa|Lijiang|Luoyang|Nanchang|Nanjing|Nanning|Pingyao|Qingdao|Shanghai|Shenyang|Shenzhen|Shijiazhuang|Suzhou|Taiwan|Taiyuan|Tianjin|Tibet|Urumqi|Wuhan|Xian|Xining|Yan'an|Yinchuan|Zhengzhou"  
2获取input里输入的值
q=request("q")
3.用q与数据库里查出来的这个字符串比较,如果相等这个对应城市名+换行
    cityname=lcase(q)
        clong=Len(cityname)
        strCity=split(strCitys,"|")
        for i=0 to Ubound(strCity)
              if left(lcase(strCity(i)),clong)=cityname then
    city=strCity(i)
                     city=city&"|"&VbCrLf  '问题主要在这里,打印时要跟“|”和回车换行,
    response.Write(city)
              end if
       next

写了这么多,不知道我表达清楚没,总之参照那个demo就可以写出来。不难。

作者: tomatojacky   发布时间: 2009-07-01

Like this forged chain movie
chain sprocket , like the
overhead conveyor fact clone

golf clubs
that conveyor parts I described

forming machine , fashion jewelry there

roll forming machine is conveyor chain

no roll forming machine comment!

作者: asdfjklmn   发布时间: 2009-08-12

作者: happypig123a   发布时间: 2009-11-16

相关阅读 更多