求 js 文本框输入拼音出现下拉框列表的特效代码 就像百度搜索框一样 要完整demo 可完美迁移。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求 js 文本框输入拼音出现下拉框列表的特效代码 就像百度搜索框一样 要完整demo 可完美迁移。相关的知识,希望对你有一定的参考价值。

不仅匹配英文也要匹配汉字, 打拼音首字母,就能检索出我后台ajax传出的汉字, 给思路的不行,要完整可行demo。

参考技术A 这个说简单不简单,说难不难,如果你想非常精确,非常优化的提示,需要很多人工干预,
如果是完全自动化处理也是可能的,关键是你要用哪一门后台语言。本人只擅长php,先讲下原理。
就是把你首先你要筛选出一堆提示关键字, 按拼音的字母排序,然后,每次ajax查询时候如果用户输入纯英文,就跟汉字首字母比较。比如你给的JS,匹配字“即时,检索,解释"什么的,就可以显示。
这时候你要说了,我怎么取汉字首字母,难道手工打上去并排序么。这其实可以用程序来取。百度找“jsp把汉字转拼音”或者php把汉字转拼音,这些都有现成的函数。做一次2次开发,用个页面接收你输入的关键字取每个拼音首字母,然后输入到数据库关键字表中,输出到txt、xml、内存缓存做关键词提示的时候可以再按拼音和优先级排序,mysql是可以用拼音排序的。比如下面的数据项(仅供参考,你喜欢怎么写都行)
建设 /jianshe / JS / 0 / 1
这样就一行。第一项主键,第二项是全拼音索引,用来排序和备用,最后2个是查询的次数和手工的加权数,

然后服务器查询的时候,依靠第三项JS,查询出一堆符合的汉字,结合后2位数算出优先级大小显示前10个就可以。用户查询后获取他用的关键字,然后查询次数+1。
你既然写过这类程序,这个检索汉字功能关键就是转拼音的2次开发,取首字母并排序生成一个新型的词库。也不算太有差异。本回答被提问者采纳
参考技术B 你可以用一个转换工具把汉字转换成拼音,然后做成索引,存到数据库中。再用AJAX进行后续的操作。 参考技术C 这是ajax 要结合你所用的后台语言的。。追问

demo

追答

建议你学一下jQuery

追问

我用jquery做过匹配汉字或字母的 但是做不好匹配拼音的 建议你看好问题 再回答

参考技术D 在网上搜一下,仿百度搜索,有很多。。。。追问

网上乱七八糟的 绝大部分都在瞎说 不然就是跟我需求不符

html做网页,关于日期下拉列表框的问题

3个下拉列表(年月日),怎么使当选择大月时,得到31天的下拉列表,选小月时,得到30天的的下拉列表,选2月时,先判断是否闰年,再得到29天或28天的值。。。。请赐教!!!使用JS或PHP的语言均可。。。其他的就不用了,看不懂

给你个例子
你参考下
在后台sevlet里面,把得到的list封装后,
在前台读出,现在可以用jstl的forEach标签,但是如果不用这个扩展标签,用原始的代码outprint也可以·~
--------------
例如:
下面是在接收输入的JSP页面中的东西,当然事先要引入你的BEAN...OK??你既然在问,应该知道这个的吧。

原始的方法:
<%
ArrayList list=(ArrayList)request.getAttrubite("这里是你在sevlet里set的Attrubute名字");

//可以这么写
for(Iterator t = list.iterator();t.hasNext();)

//假设你有个叫"myBean"的JAVABEAN在后台。
myBean bean =(myBean)t.next();
//要打印出LIST中的值,就可以这样:
out.print(bean.getXXX());//这里的XXX就是你BEAN里对应的get方法。



%>

---------------
OK..不知道我说明白没有。

---------
另外:像楼上朋友说的用el表达式就更加简单了。

只需要先引入标签库。
然后在相应的地方
<c:ForEach item:"XXX" var="list">
//这里写el表达式输出
$
</c:ForEach>
参考技术A 也可以可以找个datepicker之类的开源的js。
这个我常用。http://www.my97.net/dp/index.asp
参考技术B if((month<=7 && (month%2==1)) || (month>7 && (month%2==0)))
days=31;
else
if(month==2 && year%4==0)
days=29
else if(month==2)
days=28
else
days=30;

参考技术C // js代码:
var arr=[31,28,31,30,31,30,31,31,30,31,30,31];
var month = parseInt(document.getElementById("月分下拉列表的id").value, 10);
var days = arr[month - 1];
var year = parseInt(document.getElementById("年下拉列表的id").value, 10);
if(month == 2 && (year % 400 == 0 || (year % 4 == 0 && year % 400 != 0)))
days++;
alert("这个月有" + days + "天");
</script>本回答被提问者采纳

以上是关于求 js 文本框输入拼音出现下拉框列表的特效代码 就像百度搜索框一样 要完整demo 可完美迁移。的主要内容,如果未能解决你的问题,请参考以下文章

jsp中要做一个 模糊查询 例如输入姓名时 输入“张”下拉框中即出现"张*、张**”等 代码该如何实现?

点击文本框搜索,出现在下拉列表中

JS封装的下拉框

JS调用后台数据查询,让查询到的数据在下拉列表里显示

如何使用 Angular js 制作搜索类型下拉列表?

easyui中如何设置下拉列表框只能选择,列表框内不能输入,