function bindPersonAutoComplete(attribName,mustFlag){
//如果没有这个参数默认为true
if(mustFlag==undefined){
mustFlag=true;
}
$("input[name='"+attribName+"']").autocomplete(personAutoComplete, {
mustMatch:true,
selectFirst:true,
scroll:true,
minChars: 0,
cacheLength:1,
max:40,
width: 400,
scrollHeight: 250,
matchContains: "word",
autoFill: false,
formatItem: function(row, i, max) {
return i + "/" + max + ": \"" + row.name + "\" " + " ["+row.unitName+"] "+ row.spell+" 职工号:"+row.account;
},
formatMatch: function(row, i, max) {
return row.spell + " " + row.name+" "+row.unitName;
},
formatResult: function(row) {
return row.name.substr(1,row.name.length);
},
//自动补全没有检索到结果执行的函数
noResult:function(){
//判断是否需要无此人员的提示
if(mustFlag){
//给自动补全目标元素绑定失去焦点事件
$("input[name='"+attribName+"']").bind("blur",function(){
$("input[name='"+attribName+"']").val("");
closeTips(attribName);
});
//显示tip提示框
showTips('无此人员,请重新输入',attribName);
}
},
//自动补全没有检索到结果执行的函数
//自动补全检索到结果执行的函数
yesResult:function(){
if(mustFlag){
//如果自动补全能检索到数据,则移除目标元素失去焦点事件
$("input[name='"+attribName+"']").unbind("blur");
//关闭提示框
closeTips(attribName);
}
}
});
$("input[name='"+attribName+"']").result(cascadeChangePersonInfo);
}
<div>
</div>
实现一个智能提示功能需要ajax、数据库、jsp/php、算法等很多知识,
如果数据量大,还需要特殊优化
一个小功能,花费太大精力很不划算
92find.com上的一个js插件实现了搜索框自动补全托管服务,
只要一行javascript代码就可以实现百度、淘宝搜索框提示的全部功能
比如:汉字拼音匹配、拼音前缀匹配、模糊搜索、智能容错,还可以自定义提示词汇及其排序权重
花五分钟我的网站就可以部署同百度、淘宝一样强大好用的输入提示功能
同时兼容IE、Firefox、Safari、Chrome、Opera各种浏览器
兼容ios、Android、Windows
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。