如何用javascript来实现autocomplete
时间:2006-04-13 来源:pearma
最近在开发一个web应用,其中想实现autocomplete功能.本来想自己写,但是发现yahoo mail的autocomplete功能挺好用的,于是准备抄袭一把.
(在yahoo mail中,写信的时候,当你在收件人框中输入1个字符时,它会将你地址簿中以该字母打头的记录,全部以下拉列表方式显示出来.)
为了将它的功能移植到我的应用中去,我硬着头皮读了一遍整个代码.虽然没有全懂,但是大致还是明白了.我研究了4天,今天总算有了结果.
yahoo的autocomplete功能放在一个ac.js文件中,使用前,要准备2个数组,一个放nickname和索引,一个放名称和email地址.但是这两个数组的内容都经过了加密.不过加密的算法相当简单.(不知道是为了保密还是为了避免别人抄袭) 就是将一个字母替换成另外一个字母.大概叫rot13算法.
自动完成的原理就是根据用户输入的字符,自动出现包含该字符的记录.
由于用户可能输入的是nickname,或者是真实姓名.因此程序必须从以上2个数组里去找.这样就不会遗漏nickname或者真实姓名包含该字符的记录.
由于nickname和真实姓名都是经过rot13算法加密的,因此在查找之前,必须对用户输入的字符进行rot13加密,然后才能找.
如果nickname和真实姓名都是明文呢?那么用户输入的字符,也就不用经过rot13加密,直接查询即可啊.
那么由此,我想到了一个简单的办法来移植.
我修改ac.js中的rot13转换函数,让它直接返回参数.也就是说不对参数进行任何改变,怎么进来就怎么出去.而数组我采用明文.
果然这么一改,马上就可以使用我自己的数据了.由于我这里没有nickname数据,因为我就建了一个空的nickname数组,这样就很完美了.
相关阅读 更多 +