文本框输入内容智能提示效果

实现效果如图

大体思路:

1.监听文本框事件。这里是用的keyup事件。大家可以尝试用onchange事件。不过感觉keyup事件的效果要好一点。

2.根据输入内容通过ajax异步的方式去访问后台数据。

3.遍历返回数据将数据添加到显示区域。

4.在添加数据的同时给每一条数据加上一些效果,点击其中一条将数据填到文本框,并且提示内容消失。

5.后台数据应该拼接成json格式。我这里的格式是这样的[{"name":"张三","sex","男"},{"name":"李四","sex":"女"}]

上代码。这里就不贴出来后台代码了。

<!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 runat="server">
    <title>自动提示</title>
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script type="text/ecmascript">
        function txtchange() {
            var nnmae = $("#intxt").val();
            $.ajax({
                type: "post",
                url: "ashx/AutoNote.ashx",
                data: { name: nnmae },
                dataType: "json",
                success: function (data) {
                    $("#tbcontent").html(""); //删除原有数据
                    if (data != "null") {
                        for (var i = 0; i < $(data).length; i++) {
                            $("#tbcontent").append('<div class="item" onclick="mousedown(this)">' + data[i].name + '</div>');
                        }
                        $("#tbcontent").slideDown();
                    }
                }
            });
        }
        //选择其中的提示内容
        function mousedown(object) {
            $("#intxt").val($(object).text());
            $("#tbcontent").fadeOut();
        }
        //文档框失去焦点,隐藏提示内容
        function lost() {
            $("#tbcontent").fadeOut();
        }
    </script>
    <style type="text/css">
        .item:hover
        {
            background-color: Gray;
            cursor:pointer;
        }
        .show
        {
            width: 200px;
            z-index: 10;
            display: block;
        }
        .hidden
        {
            width: 200px;
            z-index: 10;
            display: none;
            border:1px solid rgb(80,160,91);
            border-top:none;
        }
        table tr td
        {
            margin:none;
            padding:none;
            border:none;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div style="width: 210px; margin-left:auto; margin-right:auto">
        <table>
            <tr>
                <td>
                    <input type="text" style="width: 200px;" id="intxt" onkeyup="txtchange()" onblur="lost()"/>
                </td>
            </tr>
            <tr>
                <td>
                    <div id="tbcontent" class="hidden">
                    </div>
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>
View Code

 

posted @ 2015-02-10 13:16  菜鸡能上树  阅读(1539)  评论(0编辑  收藏  举报