基于jquery实现的自动补全功能

 这篇文章主要介绍了基于jquery实现的自动补全功能的方法,涉及jQuery操作数据实现补全的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

 
 

本文实例讲述了基于jquery实现的自动补全功能的方法。分享给大家供大家参考。具体实现方法如下:

 

代码如下:

$(function() {
// 自动补全
var maxcount = 0;// 表示他最大的值
var thisCount =0;// 初始化他框的位置
$("body").prepend("<div style='width:120px; display:none; background:#FFFFFF; position: absolute;' id='autoTxt'></div>");
$("#sele").keyup(function(even) {
var v = even.which;
if (v == 38 || v == 40 || v == 13)// 当点击上下键或者确定键时阻止他传送数据
{
return;
}
var txt = $("#sele").val();//这里是取得他的输入框的值
if (txt != "") {
//拼装数据
$.ajax({
url : "Birthday_autoCompletion",//从后台取得json数据
type : "post",
dataType : "json",
data : {"bir.userName" : txt
},
success : function(ls) {
var offset = $("#sele").offset();
$("#autoTxt").show();
$("#autoTxt").css("top", (offset.top + 30) + "px");
$("#autoTxt").css("left", offset.left + "px");
var Candidate = "";
maxcount = 0;//再重新得值
$.each(ls, function(k, v) {
Candidate += "<li id='" +maxcount+ "'>" + v + "</li>";
maxcount++;
});
$("#autoTxt").html(Candidate);
$("#autoTxt li:eq(0)").css("background", "#A8A5A5");
//高亮对象
$('body').highLight();
$('body').highLight($("#sele").val());
event.preventDefault();
//当单击某个LI时反映
$("#autoTxt li").click(function(){
$("#sele").val($("#autoTxt li:eq("+this.id+")").text());
$("#autoTxt").html("");
$("#autoTxt").hide();
});
//移动对象
$("#autoTxt li").hover(function(){
$("#autoTxt li").css("background", "#FFFFFF");
$("#autoTxt li:eq("+this.id+")").css("background", "#A8A5A5");
thisCount=this.id;},function(){
$("#autoTxt li").css("background", "#FFFFFF");});
},
error : function() {
$("#autoTxt").html("");
$("#autoTxt").hide();
maxcount = 0;
}
});
} else {
$("#autoTxt").hide();
maxcount = 0;
$("#sestart").click();
}
});
//当单击BODY时则隐藏搜索值
$("body").click(function(){
$("#autoTxt").html("");
$("#autoTxt").hide();
thisCount=0;
});
// 写移动事件//上键38 下键40 确定键 13
$("body").keyup(function(even) {
var v = even.which;
if (v == 38)// 按上键时
{
if(thisCount!=0){//等于零时则证明不能上了。所以获得焦点
$("#sele").blur();
if(thisCount>0)
--thisCount;
else
thisCount=0;
$("#autoTxt li").css("background", "#FFFFFF");
$("#autoTxt li:eq("+thisCount+")").css("background", "#A8A5A5");
}else{$("#sele").focus();}
} else if (v == 40) {// 按下键时
if(thisCount<maxcount-1)
{
$("#sele").blur();
++thisCount;
$("#autoTxt li").css("background", "#FFFFFF");
$("#autoTxt li:eq("+thisCount+")").css("background", "#A8A5A5");
}
} else if (v == 13) {// 按确认键时
var tt=$("#"+thisCount).text();
if(tt!="")
{
$("#sele").val(tt);
$("#autoTxt").html("");
$("#autoTxt").hide();
}else
{
if($("#sele").val()!="")
$("#sestart").click();
}
} else {
if($("#autoTxt").html()!="")
{
$("#sele").focus();
thisCount=0;
}
}
});
});

 

希望本文所述对大家的jQuery程序设计有所帮助。

时间: 2025-01-02 12:43:27

基于jquery实现的自动补全功能的相关文章

jquery实现邮箱自动补全功能

 这篇文章主要介绍了jquery实现邮箱自动补全功能,大家参考使用吧  代码如下: (function($){     $.fn.autoMail = function(options){          var autoMail = $(this);          var _value   = '';          var _index   = -1;          var _width   = autoMail.outerWidth();          var _heigh

jQuery实现邮箱下拉列表自动补全功能_jquery

记得,在上个项目中,遇到这样一个需求,网站要求填写邮箱的时候,还没有填写完,就会出现一系列下拉列表,帮助自动补全邮箱的功能.今天小编给给大家分享下我基于jquery是怎么实现此功能的! 功能简述 •填写邮箱名字,出现下拉列表,自动补全邮箱 •点击上下按键,选取下拉列表邮箱 •按回车键,选中列表内容,隐藏下拉列表 •鼠标经过,下拉列表选项设置为高亮 •鼠标点击,选中下拉列表选项,隐藏下拉列表 HTML HTML代码很简单,我们就一个简单的输入框,然后一个ul标签,在内部可以放好多li标签. <ht

【Qt编程】基于Qt的词典开发系列&amp;lt;十四&amp;gt;自动补全功能

    最近写了一个查单词的类似有道词典的软件,里面就有一个自动补全功能(即当你输入一个字母时,就会出现几个候选项).这个自动补全功能十分常见,百度搜索关键词时就会出现.不过它们这些补全功能都是与你输入的进行首字匹配,有时也会不方便.例如,如果我输入一个"好",如果是首字匹配的话会出现下图: 如果是句中匹配的话,则是这种情况: 你可以根据自己的要求进行选择哪一种模式.     Qt中自带QCompleter类来实现上面的自动补全功能,读者可以在Qt自带的demo中很容易的学会该类的使用

详解jQuery UI库中文本输入自动补全功能的用法_jquery

自动补全(autocomplete),是一个可以减少用户输入完整信息的UI 工具.一般在 输入邮箱.搜索关键字等,然后提取出相应完整字符串供用户选择. 一.调用autocomplete()方法 $('#email').autocomplete({ source : ['aaa@163.com', 'bbb@163.com', 'ccc@163.com'], }); 二.修改autocomplete()样式   由于autocomplete()方法是弹窗,然后鼠标悬停的样式.通过Firebug 想

jQuery实现Email邮箱地址自动补全功能代码_jquery

本文实例讲述了jQuery实现Email邮箱地址自动补全功能代码.分享给大家供大家参考,具体如下: jQuery Email邮箱地址自动补全代码,输入Email时,会自动加入@符号,在输入框中输入"qq"."Sina"."163"等等可以看到效果:鼠标经过提示Email时,高亮该条Email,鼠标点击Email时,文本框内容替换成该条Email,并删除提示层. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js

asp.net+ajax+sqlserver自动补全功能实现解析

 这篇文章主要介绍了asp.net + ajax + sqlserver 自动补全功能,需要的朋友可以参考下 代码下载    说明:数据库连接字符串在web.config文件中,为方便运行使用的是官方的Northwind数据库.    参考(向其作者致敬):    ² http://www.loveweb8.com/plus/demo.php?aid=57这个例子是html源码.利用jquery.autocomplete插件利用js实现了自动补全功能.由于我的需要是结合sqlserver数据库表

asp.net+ajax+sqlserver自动补全功能实现解析_实用技巧

代码下载 说明:数据库连接字符串在web.config文件中,为方便运行使用的是官方的Northwind数据库. 参考(向其作者致敬): ² http://www.loveweb8.com/plus/demo.php?aid=57这个例子是html源码.利用jquery.autocomplete插件利用js实现了自动补全功能.由于我的需要是结合sqlserver数据库表实现自动补全功能.就下来就是将数据库表转为js数组,自然而然就想到了ajax. ² Asp.NetAjax的两种基本开发模式这篇

Bootstrap3使用typeahead插件实现自动补全功能_javascript技巧

很酷的一个自动补全插件 http://twitter.github.io/typeahead.js 在bootstrap中使用typeahead插件,完成自动补全 相关的文档:https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md 数据源: Local:数组 prefectch:json remote等方式 -----------------------------------------------

easyui-combobox 实现简单的自动补全功能示例_javascript技巧

前台:  Html页面 <input id="clsydw" name="clsydw" class="easyui-combobox" data-options="" /> JS //自动补全功能 $("#clsydw").combobox({ valueField:'syr', textField:'syr', panelWidth:200, panelHeight:'auto', onCh