⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jquery实现google即时提示输入.txt

📁 无限联机
💻 TXT
字号:
JqueryAutoComplete.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Jquery autoComplete</title>
    <meta http-equiv="Content-Type" content="text/html;gb2312">
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/jqueryautocomplete.js"></script>
</head>
<body>
<h3>Jquery autoComplete</h3>
用Jquery实现模仿Google 搜索提示功能
<input type="text" id="word" size="20"/>
<input type="button" value="提交"/><br>
<div id="auto"></div>
</body>
</html>

jqueryautocomplete.js

//   显示高亮对应的数组的索引
var highlightindex = -1;
//提示延迟
var timeOutId;
$(document).ready(function() {
    //取得输入框对象
    var wordinput = $("#word");
    //获取输入框在当前视口的相对偏移
    var wordinputoffset = wordinput.offset();
    //设置提示框的相关参数
    $("#auto").hide().css("border", "1px black solid")
            .css("position", "absolute")
            .css("top", wordinputoffset.top + wordinput.height() + 5 + "px")
            .css("left", wordinputoffset.left + "px")
            .width(wordinput.width() + 2 + "px");
    //键盘事件
    $("#word").keyup(function(event) {
        var myEvent = event || window.event;
        //获取当前键值
        var keyCode = myEvent.keyCode;
        // 按下字母键和退格、delete键
        if (keyCode >= 65 && keyCode <= 90 || keyCode == 8 || keyCode == 46) {
            var wordText = $("#word").val();
            var autoNode = $("#auto");
            //只有输入框中有值时才向服务器发送请求
            if (wordText != "") {
                //取消上次未完成的操作
                clearTimeout(timeOutId);
                //对服务器的请求延迟200ms
                timeOutId = setTimeout(function(){
                     $.post("AutoComplete", {word:wordText}, function(data) {
                    //将dom对象转化为jquery对象 
                    var jqueryObj = $(data);
                    //找到所有的word节点
                    var wordNodes = jqueryObj.find("word");
                    //遍历前清空原来的内容
                    autoNode.empty();
                    wordNodes.each(function(i) {
                        var wordNode = $(this);
                        var newDivNode = $("<div>").attr("id", i);
                        newDivNode.html(wordNode.text()).appendTo(autoNode);
                        //鼠标事件
                        newDivNode.mouseover(function() {
                            if (highlightindex != -1) {
                                $("#auto").children("div").eq(highlightindex).css("background-color", "white");
                            }
                            highlightindex = $(this).attr("id");
                            $(this).css("background-color", "red");
                        });
                        newDivNode.mouseout(function() {
                            $(this).css("background-color", "white");
                        });
                        //点击获取选中的值
                        newDivNode.click(function(){
                            $("#word").val( $(this).text());
                             highlightindex = -1;
                            $("#auto").hide();
                        });
                    });
                    if (wordNodes.length > 0) {
                        autoNode.show();
                    } else {
                        autoNode.hide();
                        highlightindex = -1;
                    }
                }, "xml");
                },200);
            }
            else {
                autoNode.hide();
                highlightindex = -1;
            }
        }
        // 按下上下键
        else if (keyCode == 38 || keyCode == 40) {
            //按下向上键后
            if (keyCode == 38) {
                //取得提示框中的各个div
                var autoNodes = $("#auto").children("div");
                if (highlightindex != -1) {
                    //如果当前有高亮节点,则把该高亮节点背景色变为非高亮背景色
                    autoNodes.eq(highlightindex).css("background-color", "white");
                    highlightindex --;
                } else {
                    highlightindex = autoNodes.length - 1;
                }
                if (highlightindex == -1) {
                    highlightindex = autoNodes.length - 1;
                }
                autoNodes.eq(highlightindex).css("background-color", "red");
            }
            //按下向下键后
            if (keyCode == 40) {
                var autoNodes = $("#auto").children("div");
                if (highlightindex != -1) {
                    //如果当前有高亮节点,则把该高亮节点背景色变为非高亮背景色
                    autoNodes.eq(highlightindex).css("background-color", "white");
                    highlightindex ++;
                } else {
                    highlightindex = 0;
                }
                if (highlightindex == autoNodes.length) {
                    highlightindex = 0;
                }
                autoNodes.eq(highlightindex).css("background-color", "red");
            }
        }
        // 按下回车
        else if (keyCode == 13) {
            if (highlightindex != -1) {
                var conText = $("#auto").hide().children("div").eq(highlightindex).text();
                highlightindex = -1;
                $("#word").val(conText);
            } else {
                alert("文本框中的内容【" + $("#word").val() + "】被提交了");
                $("#auto").hide();
                $("#word").blur();
            }
        }
    });
    $("input[type='button']").click(function() {
        alert("文本框中的内容【" + $("#word").val() + "】被提交了");
    });

});

AutoComplete.java(别忘了在web.xml里面配置哦!)

import com.sun.deploy.net.HttpRequest;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletException;
import java.io.IOException;

/**
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 2008-9-24
* Time: 21:39:17
* To change this template use File | Settings | File Templates.
*/
public class AutoComplete extends HttpServlet {
    protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
        String word = httpServletRequest.getParameter("word");
        httpServletRequest.setAttribute("word", word);
        httpServletRequest.getRequestDispatcher("wordxml.jsp").forward(httpServletRequest, httpServletResponse);
        // httpServletResponse.sendRedirect("wordxml.jsp");
    }

    protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
        doGet(httpServletRequest, httpServletResponse);
    }
}

wordxml.jsp
<%@ page contentType="text/xml;charset=UTF-8" language="java" %>
<%
    String word = (String)request.getAttribute("word");
%>
<words>
    <% if(("absolute").startsWith(word)){   %>
    <word>absolute</word>
    <%}%>
    <% if(("apple").startsWith(word)){   %>
    <word>apple</word>
     <%}%>
    <% if(("anything").startsWith(word)){   %>
    <word>anything</word>
     <%}%>
    <% if(("anybody").startsWith(word)){   %>
    <word>anybody</word>
     <%}%>
    <% if(("body").startsWith(word)){   %>
    <word>body</word>
     <%}%>
    <% if(("bobo").startsWith(word)){   %>
    <word>bobo</word>
     <%}%>
    <% if(("baby").startsWith(word)){   %>
    <word>baby</word>
     <%}%>
    <% if(("cut").startsWith(word)){   %>
    <word>cut</word>
     <%}%>
    <% if(("cetuegte").startsWith(word)){   %>
    <word>cetuegte</word>
     <%}%>
</words>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -