仿百度搜索显示下拉框(一)

# 最近在写一个旅游网站的小案例,其中的一个功能:搜索同时显示下拉框

本文所用的知识主要有:JQuery语法,ajax异步加载,ssh框架;

1:逻辑分析:
事件分析:在输入框中输入值后,下拉框即显示,根据异步加载得到的信息,将数据显示在下拉框中,此事件为获得焦点元素事件(此事件我也有点模糊)keyup事件;
后台技术分析:获得到文本框的输入值name后,我们通过ajax技术,异步去数据库查询数据,这里我们一般使用模糊查询like,只要包含该name的数据我们都查询作为结果,但是需要注意的是,由于下拉框大小有限,数据量一般用limit条件查询限制显示的数量;
前台技术分析:从后台拿到数据后,我们要让隐藏的div显示,涉及到show()以及hide()方法,在显示div的同时我们要将数据写入到表格中
2:代码展示:

//异步加载下拉框
$(function() {
   $("#search").keyup(function() {
   var rname = $(this).val();
    if (rname != null && "" != rname) {
    $.post("/listName", {
        "rname" : rname
        }, function(data) {
            var json = eval(data);
            console.log(data)
            var html = "<table border='0' width='410px'>";
            for (var i = 0; i < json.length; i++) {
            html += "<tr><td>" + json[i].rname + "</td></tr>";
            }
            html += "</table>";
            $("#dtn").show().html(html);

        //鼠标移动到某行上改变颜色
        $("tr").bind("mouseover", function() {

        $(this).css("background-color", "beige");
               });
        $("tr").bind("mouseout", function() {
        $(this).css("background-color", "#ffffff");
              });
        //单击某行跳转到详细页面
        $("tr").bind("click", function() {
        location.href = "/findRouteClick?rname=" + $(this).find("td").text();
             });
        } ,"json");
        } else {
        $("#dtn").hide();
        }
    });
});

//html页面代码
<div class="search">
<input name="serach_input" type="text" id="search"
placeholder="请输入路线名称" class="search_input" autocomplete="off">
<a class="search-button" href="#">搜索</a>
<div id="dtn"style="display:none;background-color:white;; position: absolute; left: 483px; top: 232.5px; width: 410px; height: 300px; border: 1px solid gray;">
</div>

3.总结:此例在此只分析下拉框的显示,下篇文章我们来分析我们在这里可能遇到的bug以及其他功能的实现;

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值