实现效果如图
大体思路:
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>
时间: 2024-10-07 16:13:32