js 自动补全

js 代码

//---------------------------------------------------自动补全begin--------------------------------

var maxcount = 0;// 表示他最大的值

var thisCount =0;// 初始化他框的位置

var flagThis = 0;

var flag = 0; //标示是否选择自动补全

//自动补全方法

function zdbq(obj){

var id = obj.id;

document.getElementById("zdbqid").value = id;

jQuery("#"+id).keyup(function(even) {

document.getElementById("autoTxt").style.width= 214+"px";

var v = even.which;

//回车键:13;上键38;下键40// 当点击上下键或者确定键时阻止他传送数据

if (v == 38 || v == 40 || v == 13){

return;

}

var txt = jQuery("#"+id).val();//这里是取得他的输入框的值

if (txt != "") {

jQuery.ajax({

url : "xxx_xxx.action",//从后台取得json数据

type : "post",

dataType : "json",

data : {"name" : txt

},

success : function(ls) {

flagThis = 1;

var offset = jQuery("#"+id).offset();//offset() 方法返回或设置匹配元素相对于文档的偏移(位置)。

jQuery("#autoTxt").show();

jQuery("#autoTxt").css("top", (offset.top + 22) + "px");

jQuery("#autoTxt").css("left", offset.left + "px");

var Candidate = "";

maxcount = 0;//再重新得值

var list=eval(ls);

jQuery.each(list, function(k, v) {

var nn=(v+"").split(",");

Candidate += "<li style=‘list-style:none‘ id=‘"+maxcount+"‘>"+nn[0]+"</li><span id=‘hhh‘ style=display:none >"+nn[1]+"</span>";

maxcount++;

});

jQuery("#autoTxt").html(Candidate);

jQuery("#autoTxt li:eq(0)").css("background", "#A8A5A5");//初始化默认选择第一个数据

//当单击某个LI时反映

jQuery("#autoTxt li").click(function(){

flag = 1;
//标示是否选择自动补全

var jgname=jQuery("#autoTxt li:eq("+this.id+")").text();
//获取名称

var fid = jQuery("#autoTxt span:eq("+thisCount+")").text();
//获取id

jQuery("#"+id).val(jgname);
//放入名称

$("#jcid").val(fid);
//放入id

jQuery("#autoTxt").html("");

jQuery("#autoTxt").hide();

});

//移动对象

jQuery("#autoTxt li").hover(function(){

jQuery("#autoTxt li").css("background", "#FFFFFF");

jQuery("#autoTxt li:eq("+this.id+")").css("background", "#A8A5A5");

thisCount=this.id;},function(){

jQuery("#autoTxt li").css("background", "#FFFFFF");});

},

error : function() {

jQuery("#autoTxt").html("");

jQuery("#autoTxt").hide();

maxcount = 0;

}

});

} else {

jQuery("#autoTxt").html("");

jQuery("#autoTxt").hide();

maxcount = 0;

}

}

);

//=====================自动补全公共部分开始=================================

//当单击BODY时则隐藏搜索值

jQuery("body").click(function(){

jQuery("#autoTxt").html("");

jQuery("#autoTxt").hide();

thisCount=0;

});

}

//键盘选择

jQuery(function(){

//键盘按键移动事件上键38,下键40,确定键13

jQuery("body").keyup(

function(even){

var id = document.getElementById("zdbqid").value;

var v = even.which;

if(38==v){//上键

if(thisCount>0){

--thisCount;

}else{

thisCount = maxcount-1;

}

jQuery("#autoTxt li").css("background", "#FFFFFF");

jQuery("#autoTxt li:eq("+thisCount+")").css("background", "#A8A5A5");

}else if(40==v){//下键

if(thisCount<maxcount-1){

++thisCount;

}else{

thisCount = 0;

}

jQuery("#autoTxt li").css("background", "#FFFFFF");

jQuery("#autoTxt li:eq("+thisCount+")").css("background", "#A8A5A5");

}else if(13==v){//确定键

flag = 1;
//标示是否选择自动补全

var jgname=jQuery("#"+thisCount).text();
//获取名称

var fid = jQuery("#autoTxt span:eq("+thisCount+")").text();
//获取id

if(jgname!=""){

jQuery("#"+id).val(jgname);
//放入名称

}

if(fid!=""){

$("#jcid").val(fid);
//放入id

}

jQuery("#autoTxt").html("");

jQuery("#autoTxt").hide();

}else {

if(jQuery("#autoTxt").html()!=""){

thisCount=0;

}

}

}

);

});

//---------------------------------------------------自动补全end--------------------------------

body里面需要写的代码

<!-- 自动补全用到的 -->

<!-- 存放名称的id -->

<input type="hidden" value="" name="zdbqid" id="zdbqid"/>

<!-- 显示的div -->

<div style="width:180px; z-index:99999999; display:none; background:#FFFFFF; position: absolute;" id="autoTxt"></div>

在input中使用

onkeyup="zdbq(this);"

只要在后台封装成json对象就行了 详细代码就不展示了,只说一下封装json代码

JSONArray arr=new JSONArray();

Object[] obj = new Object[]{名称,id}; //名称和id传递到前台

arr.add(obj);

时间: 2024-10-30 02:47:02

js 自动补全的相关文章

js自动补全实例

var oInputField ,oPopDiv , oColorsUl,aColors; //初始化变量 function initVars(modelId,divId,ulId){ oInputField = document.getElementById(modelId); oPopDiv = document.getElementById(divId); oColorsUl = document.getElementById(ulId); } //查机种.料号 自动补全 function

JS自动补全

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

easyui-combobox 实现简单的自动补全功能

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

Visual Studio Code使用typings拓展自动补全功能

转自:http://blog.csdn.net/liyijun4114/article/details/51658087 参考来源: 官方介绍: https://code.visualstudio.com/Docs/runtimes/nodejs#_intellisense-and-typings gyzhao写的”Visual Studio Code 使用 Typings 实现智能提示功能”: http://www.cnblogs.com/IPrograming/p/VsCodeTypings

js 实现类似百度联想输入,自动补全功能

js  实现类似百度联想输入,自动补全功能 方案一: search是搜索框id="search" 1 //点击页面隐藏自动补全提示框 2 document.onclick = function (e) { 3 var e = e ? e : window.event; 4 var tar = e.srcElement || e.target; 5 if (tar.id != search) { 6 if ($("#" + auto).is(":visibl

JS实现在输入框内输入@时,邮箱账号自动补全

<!DOCTYPE HTML> <html lang="en"> <head> <meta charset="utf-8"/> <title>邮箱自动补全</title> <style type="text/css"> .wrap{width:200px;margin:0 auto;} h1{font-size:36px;text-align:center;lin

知问前端——邮箱自动补全

本节课,我们通过自动补全source属性的function回调函数,来动态的设置我们的数据源,以达到可以实现邮箱补全功能. 数据源function 自动补全UI的source不但可以是数组,也可以是function回调函数,提供了自带的两个参数设置动态的数据源. $('#email').autocomplete({ source : function (request, response) { //获取用户输入的内容 alert(request.term); //可以获取你输入的值 //绑定数据

jquery autocomplete 自动补全

写在前面 autocomplete是jqueryUI里的一个插件 效果和说明可以访问这里,作用类似于搜索时的自动提示: 相信用过jQuery autocomplete 自动补全功能同学有不少,但是往往我们所对应的需求不同,有的仅仅是为了省事,敲两个字就有一堆可供选择的信息可供选择,但并不是所有需求都是这样的,我们还有这样的需求,敲两个字,将这个文字对应的实体绑定出来. 主要的参数 jQuery UI Autocomplete常用的参数有: Source:用于指定数据来源,类型为String.Ar

非常好用的JQuery自动补全插件bigautocomplete

自动补全插件,有些功能有限,有些是老外做的,不支持中文.今天发现一个国人做的,叫做bigautocomplete,还不错. 官网下载地址:http://code.google.com/p/jquery-bigui/downloads/list 如果不想翻墙的话,可以从这里下载(已经转码为UTF-8):http://download.csdn.net/detail/clementad/8917219 使用步骤: 1.把两个js和css文件放到项目中: 2.在项目页面中引用: <script src