官网  http://api.jqueryui.com/autocomplete/#option-source

参考了 http://www.cnblogs.com/lwme/archive/2012/02/12/jquery-ui-autocomplete.html 写的很好 大家去看看

首先要说明的是 如果在网上直接搜索 autocomplete 的话  会得到很多不同的插件

比如这个页面http://www.open-open.com/ajax/AutoComplete.htm  相同功能的插件有3页

我这里用的时 jQuery.ui 下的一个补全插件

下面用三种方式获取

一种是静态数据  一种是远程的写好的静态json格式数据  还有一种是后台根据输入的不同数据返回不同的值

<!doctype html>

<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Autocomplete - Default functionality</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>
$(function() {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
</head>
<body> <div class="ui-widget">
<label for="tags">Tags: </label>
<input id="tags" />
</div> <div class="ui-wight">
<label for="jsonp">rakusTag</label>
<input id="jsonp"/>&nbsp;&nbsp;&nbsp;下面有指定参数 输入的字符最小是2个才开始传送数据
</div> <script type="text/javascript">
$(function(){
$("#jsonp").autocomplete({
source: function(request, response) {
$.ajax({
url: "http://ws.geonames.org/searchJSON",
dataType: "jsonp",
data: {
featureClass: "P",
style: "full",
maxRows: 12,
name_startsWith: request.term
},
success: function(data) {
response($.map(data.geonames, function(item) {
return {
label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
value: item.name
}
}));
}
});
},
minLength: 2
});
});
</script> <div class="ui-wight">
<label for="find_group_ac">rakusTag</label>
<input id="find_group_ac"/>
</div> <script type="text/javascript">
$(function(){
$("#find_group_ac").autocomplete({
source: function(request, response) {
$.ajax({
url: "autocomplete.php",
dataType: "json",
data: {
term: request.term
},
success: function(data) {
response($.map(data.items, function(item) {
return {
label: item.name,
value: item.name
}
}));
}
});
},
minLength: 1
});
});
</script>
</body>
</html>

后台

<?php
$val=$_REQUEST['term'];
$ret="";
function StartsWith($Haystack, $Needle){
return strpos($Haystack, $Needle) === 0;
} if(StartsWith($val,'a')){
$ret="{\"items\":[{\"name\":\"ACC\",\"description\":\"desc\"},{\"name\":\"acm\",\"description\":\"desc\"},{\"name\":\"array\",\"description\":\"desc\"}]}";
if(strpos($val,'ac')!==false){
// echo 'ac';
$ret="{\"items\":[{\"name\":\"ACC\",\"description\":\"desc\"},{\"name\":\"acm\",\"description\":\"desc\"}]}";
if(strpos($val,'acc')!==false){
// echo 'acc';
$ret="{\"items\":[{\"name\":\"ACCR\",\"description\":\"desc\"},{\"name\":\"according\",\"description\":\"desc\"}]}";
}
}
}else if(StartsWith($val,'b')){
$ret="{\"items\":[{\"name\":\"base\",\"description\":\"desc\"},{\"name\":\"bonni\",\"description\":\"desc\"},{\"name\":\"boot\",\"description\":\"desc\"}]}";
}else if(StartsWith($val,'c')){
$ret="{\"items\":[{\"name\":\"candy\",\"description\":\"desc\"},{\"name\":\"clone\",\"description\":\"desc\"},{\"name\":\"crocs\",\"description\":\"desc\"}]}";
}else {
$ret="";
}
echo $ret;
?>

最后送一个 检查json数据 是否正确的工具  http://jsonlint.com/

最新文章

  1. Springmvc的跳转方式
  2. SQL2005 表分区亲测
  3. Atitit 分区后的查询&#160;&#160;mysql分区记录的流程与原理
  4. MVC学习系列13--验证系列之Remote Validation
  5. 如何判断自己的VPS是那种虚拟技术实现的
  6. [原创]C++通用宏定义
  7. Java 画图
  8. CodeForce727C. Guess the Array---交互题
  9. php视图操作
  10. perl 使用SUPER类来访问覆盖的方法
  11. 在Windows平台搭建轻巧的Python开发环境——面向工程和科研的扩展包配置
  12. Vagrant下共享目录下静态文件(js/jpg/png等)修改完运行报错
  13. Installing VirtualBox
  14. jenkins+ant+jmeter自动化环境搭建(一)
  15. 20162302 实验四《Android程序设计》实验报告
  16. Spring中BeanFactory的对象注册与依赖绑定方式
  17. Alpha冲刺(9/10)
  18. Android开发工程师文集-1 小时学会各种Drawable
  19. stm32cube使用
  20. spark快速开发之scala基础之2控制流程

热门文章

  1. MySQL学习笔记(5)
  2. opacity在IE6~8下无效果,解决的办法
  3. Html5 Video的使用
  4. SQL serve创建与调用存储过程
  5. js添加删除元素
  6. JAVA 语 言 如 何 进 行 异 常 处 理 , 关 键 字 : throws,throw,try,catch,final
  7. XStream和Json
  8. Mac上小巧实用的GIF格式录屏软件 LICEcap
  9. Struts2相关注意点
  10. [LeetCode]题解(python):145-Binary Tree Postorder Traversal