防google自动补齐

时间:2014-04-09 15:30:40
【文件属性】:

文件名称:防google自动补齐

文件大小:4KB

文件格式:JS

更新时间:2014-04-09 15:30:40

自动补齐

防google自动补齐,异步调用数据 $(document).ready(function(){ //表示当前高亮的节点 highlightindex = -1; var timeoutId; var wordInput = $("#word"); var wordInputOffset = wordInput.offset(); $("#auto").hide().css("border","1px black solid").css("position","absolute").css("background-color","white") .css("top",wordInputOffset.top+wordInput.height() + 13 +"px") .css("left",wordInputOffset.left).width(wordInput.width() + 5); //控件1自动补全 wordInput.keyup(function(event){ //处理文本框的键盘事件 var myEvent = event||window.event; var keyCode = myEvent.keyCode; //对输入字符的判断 if((keyCode >= 65 && keyCode<=90) || (keyCode >= 48 && keyCode <= 57)||(keyCode>=96 && keyCode<=105) || keyCode ==46 || keyCode == 8 || keyCode == 32){ var wordText = $("#word").val(); var autoNode = $("#auto"); if(wordText!=""){ //把文本框的字符传到服务器端 //清除上次未完成的延时 clearTimeout(timeoutId); timeoutId = setTimeout(function(){ $.post("/wght/wght/bargain/searchIndex.do?word="+wordText,function(data){ //将dom对象data转换为jquery数据 var jqueryObj = $(data); //找到所有word节点 var wordNodes = jqueryObj.find("word"); autoNode.html(""); //遍历word,将起放入对话框中 wordNodes.each(function(i){ //取单词内容, var wordNode = $(this).text(); //新建div节点,将单词内容放到节点里,将节点放置页面 if(wordNode != null){ $("

").css("font-size","13px").css("height","18px").css("padding-top","1px").html(wordNode).appendTo(autoNode); } var completesVal=$("#auto").children("div"); var newDivNode =$("
").attr("id",i); //新增鼠标进入事件,高亮显示 completesVal.mouseover(function(){ if(highlightindex != -1){ $("#auto").children("div").eq(highlightindex).css("background-color","white"); } highlightindex = $(this).attr("id"); $(this).css("background-color","yellow"); }); //新增鼠标移出事件,取消高亮 completesVal.mouseout(function(){ $(this).css("background-color","white"); }); //鼠标单击事件,补全其内容 completesVal.click(function(){ var comText = $(this).text(); $("#auto").hide(); highlightindex=-1; $("#word").val(comText); }); }); //如果有数据,显示之 if(wordNodes.length > 0){ autoNode.show(); }else { autoNode.hide(); highlightindex=-1; } },"xml"); },500); }else{ autoNode.hide(); highlightindex=-1; } }else if(keyCode == 38 || keyCode==40){ //如果输入的是向上38向下40按键 if(keyCode == 38){ //up var autoNodes = $("#auto").children("div"); if(highlightindex !=-1) { autoNodes.eq(highlightindex).css("background-color","white"); highlightindex--; }else{ highlightindex = autoNodes.length -1; } if(highlightindex == -1){ //如果修改索引值以后index变成-1,则将索引中指向最后一个元素 highlightindex = autoNodes.length -1; } //让现在被高亮的内容变成黄色 autoNodes.eq(highlightindex).css("background-color","yellow"); }if(keyCode == 40){ //down var autoNodes =$("#auto").children("div"); if(highlightindex !=-1) { autoNodes.eq(highlightindex).css("background-color","white"); } highlightindex++; if(highlightindex == -1){ //如果修改索引值以后index变成-1,则将索引中指向最后一个元素 highlightindex = 0; } //让现在被高亮的内容变成黄色 autoNodes.eq(highlightindex).css("background-color","yellow"); } }else if(keyCode == 13){ if(highlightindex !=-1) { var comText =$("#auto").hide().children("div").eq(highlightindex).text(); highlightindex=-1; $("#word").val(comText);//将文本框内容改成选中项 //$("form:first").submit(); //提交form。若没有这句话,按下回车后,仅仅只改变了文本框里的内容,但是由于form本身就监控了回车按键默认为submit,提交的是文本框改变之前的内容,解决这个问题最简单的方式就是在文本框内容改变以后强制提交form的内容,此时,提交的内容就是选中项。 }else{ $("#auto").hide(); //让文本框失去焦点 $("#word").get(0).blur(); } } }); })


网友评论