`
zhou695105338
  • 浏览: 21002 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js自动完成

阅读更多

js自动完成,实现基本功能,基于jquery

 

$(function(){
	var listLength = 10;//列表长度
	var beginSearch = 1;//开始搜索字符长

	$(":text,textarea").each(function(){
		if($(this).attr("search")){
			var input = $(this);
			var position = input.position();

			var index;
			$(document).click(function(){
				if($("#ul_autocomplete")[0]) $("#ul_autocomplete").remove();
				if($("#ul_autocompleteframe")[0]) $("#ul_autocompleteframe").remove();
			});
			input.keyup(function(ev){
				var ev = ev||window.event;
				var key = ev.keyCode;
				var list = $("#ul_autocomplete li");
				if(key==40||key==38){
					if(key==38){
						if(index==undefined)
							index=0;
						index--;
					}
					if(key==40){
						if(index==undefined)
							index=-1;
						index++;
					}
					index=(list.length+index)%list.length;	//循环队列
					list.css("background-color","#ffffff");
					list.eq(index).css("background-color","#D8EAF8");
					input.val(list.eq(index).text());

				}else{
					$.get(input.attr("search")+"&autocomplete=true","input="+(escape($(this).val())),function(data){
						var items = data.split(",");
						if(!items[items.length-1]) items.length = items.length-1;
						if(items.length>0){
							if($("#ul_autocomplete")[0]) $("#ul_autocomplete").remove();
							if($("#ul_autocompleteframe")[0]) $("#ul_autocompleteframe").remove();
							var down = $("<ul style='position:absolute;list-style:none;border:1px solid;background-color:white;margin:0;padding:0;z-index:100;padding-bottom:15px;'></ul>");
							down.css({width:input.outerWidth(),left:position.left,top:position.top+input.outerHeight()});
							down.attr("id","ul_autocomplete");
							down.appendTo($(document.body));
							if($.browser.msie&&$.browser.version=="6.0"){
								var iframe = $("<iframe id='ul_autocompleteframe' style='border:none;margin:0;padding:0;position:absolute;' frameborder='0' scrolling='no'></iframe>");
								iframe.css({width:down.width()+2,height:20*items.length,left:down.position().left,top:down.position().top});
								iframe.appendTo("body");
							}
							
							for(var i = 0;i<items.length;i++){
								var li = $("<li style='margin:0;padding:0;display:block;cursor:default;'></li>");
								if($.browser.msie&&$.browser.version=="6.0") {
									li.css("width",input.outerWidth()-10);
								}
								li.text(items[i]);
								li.css("padding","3px 5px");
								li.attr("index",i);
								li.mouseover(function(){
									$(this).css("background-color","#D8EAF8");
									index = $(this).attr("index");
								});
								li.mouseout(function(){
									$(this).css("background-color","#ffffff");
								});
								li.click(function(){
									input.val($(this).text());
								});
								li.appendTo(down);
							}
						}
					});
				}
			});
		}
	});
});
 

页面示例代码

 

<input type="text" autocomplete="off" search="ajaxreturn.asp?search=name"  />

 后台示例代码,input的值经过escapse函数编码

 

autocomplete = request("autocomplete") //标识这是自动完成的请求
input = request("input") //得到输入框中的值
length = request("length")//得到结果列表长度
search = request("search")//自定义参数
 
1
0
分享到:
评论
3 楼 zhou695105338 2011-10-14  
zhangyaochun 写道
autocomplete应该有cache机制吧,显示的匹配最大数目应该可以自定义,还有可以增加高亮和键盘操作。。。LZ可以看看网上的其他插件写法

cache还没有,多谢提醒,其他的应该有吧
2 楼 zhangyaochun 2011-10-09  
autocomplete应该有cache机制吧,显示的匹配最大数目应该可以自定义,还有可以增加高亮和键盘操作。。。LZ可以看看网上的其他插件写法
1 楼 zhou695105338 2011-10-09  
先自己顶一个

相关推荐

    基于JS自动完成容易使用

    1. **JavaScript自动完成**:JavaScript库如jQuery UI、Typeahead.js或Autocomplete.js提供了实现自动完成的基础。这些库通常包括一个输入框监听器,当用户输入时触发请求,并显示返回的建议列表。 2. **PHP接口...

    JS自动完成(JQuery做的)

    `44444.html`可能是示例页面,`jquery-1.3.2.js`是jQuery库的旧版本,而`bb.js`可能是包含自动完成逻辑的JavaScript脚本。 综上所述,利用jQuery实现自动完成功能,主要涉及到Ajax通信、CSS布局以及jQuery的事件...

    JS 自动完成,支持拼音中文插件

    实现JS自动完成功能,我们可以利用jQuery库,这是一个轻量级、高性能的JavaScript库,提供了许多方便的DOM操作和事件处理方法。jQuery使得在不同浏览器间编写兼容的代码变得更加容易。 在JS中实现中文拼音自动完成...

    JavaScript_一个超级小的Javascript自动完成自动建议库零依赖800字节的mingzip.zip

    本文将深入探讨标题所提及的"一个超级小的JavaScript自动完成自动建议库",以及与JavaScript相关的知识点。 标题中的“零依赖800字节的mingzip.zip”可能指的是一个极小型的JavaScript库,专门用于实现自动完成和...

    react-native-autocomplete-input, 纯javascript自动完成输入,用于响应本机.zip

    react-native-autocomplete-input, 纯javascript自动完成输入,用于响应本机 react-native-autocomplete-input 一个纯JS自动完成组件,用于响应本机。 在你自己的项目中使用这里组件,或者将它的用作生成你自己的...

    DIY的JS自动完成的插件

    最近又花了点时间写了个在一般项目中比较常用的插件,就是JS自动完成选择的插件。该插件是基于jQuery1.6的利用于AJAX传递输入框值请求数据,支持能过配置的自定义处观位置与大小的调整;自定义事件触发;自定义请求...

    纯js仿百度自动完成

    面向对象的纯js仿百度自动完成,可以在一个页面内通过创建对象使用多个

    javascript 仿照google自动完成

    通过以上技术,我们可以实现一个功能完善的JavaScript自动完成组件。具体实现过程通常包括创建输入事件监听器,获取输入值,匹配数据源,创建并插入DOM元素,以及处理用户与下拉列表的交互。在实际项目中,可以使用...

    JavaScript自动完成库AutoJS.zip

    AutoJS 是基于一个标准字典库的文本输入自动完成 JavaScript 库。Auto.js 是使用纯 JS 实现的,没有任务外部依赖,大小仅仅 6kb。 标签:AutoJS

    实用的轻量级js自动完成autocomplete插件

    在JavaScript的世界里,开发人员经常面临为用户输入提供智能提示或自动补全功能的需求,而 Awesomplete 就是一个非常出色的解决方案。这款轻量级的 autocomplete 插件以其高效和灵活的特性赢得了开发者们的喜爱。...

    自动完成 JS

    【自动完成 JS】技术是前端开发中的重要组成部分,主要用于提高用户输入效率和用户体验。它广泛应用于搜索框、表单输入、代码编辑器等场景,通过预测和建议用户可能要输入的内容,大大减少了用户手动键入的步骤。在...

    EDITPLUS 自动完成JS插件

    "EDITPLUS 自动完成JS插件"是专门为EDITPLUS设计的一个增强工具,用于提升JavaScript开发时的代码编写效率。 该插件的核心特性是自动完成功能,它可以在用户输入代码时提供智能提示,根据上下文显示可能的函数、...

    仿baidu google 输入框自动完成

    【描述】中的"js自动完成",指的是利用JavaScript编程语言实现自动补全功能。"struct1.2+mysql"表明项目中可能使用了Structs 1.2框架和MySQL数据库来处理数据存储和检索。Structs是一个基于MVC模式的Java Web开发...

    js 自动提示城市

    在“js自动完成城市提示输入”中,核心是监听用户的输入事件,每当用户在输入框中输入字符时,都会触发一个事件。我们可以捕获这个事件,并利用拼音库将用户输入的汉字转换为拼音。然后,我们可以在预先存储的城市...

    JS 自动完成 AutoComplete(Ajax 查询)

    【JS 自动完成 AutoComplete(Ajax 查询)】是前端开发中常见的一种功能,它通过实时获取用户在输入框中输入的字符,利用Ajax技术向服务器发送请求,动态加载并显示匹配的数据,为用户提供便捷的搜索体验。这个功能在...

    js javascript自动编号 编号递增

    在JavaScript编程中,"js javascript自动编号 编号递增"这一主题涉及到如何设计一个功能,使得能够自动为带有特定前缀(例如"0X")的数字字符串进行递增。这种需求通常出现在数据管理、序列化或者创建唯一标识符等...

    atom-autocomplete-threejs:用于Atom编辑器的three.js自动完成

    《Atom编辑器中的Three.js自动完成插件:atom-autocomplete-threejs详解》 在现代Web开发中,JavaScript库和框架的使用越来越广泛,其中Three.js是3D网页开发的首选库之一。为了提高开发效率,许多开发者依赖于代码...

    EDITPLUS 自动完成插件 (JS 含jQuery API)

    总的来说,EDITPLUS的自动完成插件(JS含jQuery API)是一个高效且实用的工具,它能够帮助开发者快速编写JavaScript和jQuery代码,提高开发速度和代码质量。无论是初学者还是经验丰富的专业人士,都能从中受益。通过...

    自动完成JS

    标题“自动完成JS”指的是在JavaScript中实现自动补全或自动建议的功能,这通常用于提升用户在输入框中输入内容时的效率和体验。在Web开发中,这种功能广泛应用于搜索框、表单填写等场景,它能预测并提供用户可能想...

Global site tag (gtag.js) - Google Analytics