js 自动补全
js 代码
//---------------------------------------------------自动补全begin--------------------------------
var maxcount = 0;// 表示他最大的值
var thiscount =0;// 初始化他框的位置
var flagthis = 0;
var flag = 0; //标示是否选择自动补全
//自动补全方法
function zdbq(obj){
var id = obj;
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 += +nn[0]++nn[1]+;
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
在body中使用
onload=zdbq('自动补全input的id');
只要在后台封装成json对象就行了 详细代码就不展示了,只说一下封装json代码
jsonarray arr=new jsonarray();
object[] obj = new object[]{名称,id}; //名称和id传递到前台
arr.add(obj);
其它类似信息