zoukankan      html  css  js  c++  java
  • JQuery实现智能输入提示(仿机票预订网站)

     连接:

    http://www.cnblogs.com/kyle_zhao/archive/2010/02/27/1674819.html

    JQuery实现智能输入提示(仿机票预订网站)

        最近在研究JQuery框架,JQuery是一套很优秀的JS框架,可以实现很多美观实用的控件。今天给大家推荐一个智能提示的空间,是模仿现在很多机票预订网站的城市智能提示。

        注: aircity.js把城市信息数据封装成了JOSN数组,js能解析josn从而获得需要的数据。

      

        需要用到的JS文件:https://files.cnblogs.com/kyle_zhao/js.rar 

        大家可以下载上面的压缩包,里面包括了jquery-1.4.2.min.js, aircity.js,j.suggest.js,j.dimensions.js.

        下面是代码部分。

        jquery.suggest.css

        

    jquery.suggest.css
    body{margin:0;padding:0;font-family:"宋体";font-size:13px;text-align:center;}
    h1
    {margin:0;padding:20px 0;font-size:16px;}
    ol
    {padding-left:20px;line-height:130%;}
    #box
    {width:600px;text-align:left;margin:0 auto;padding-top:80px;}
    #suggest,#suggest2
    {width:200px;}
    .gray
    {color:gray;}
    .ac_results
    {background:#fff;border:1px solid #7f9db9;position: absolute;z-index: 10000;display: none;}
    .ac_results ul
    {margin:0;padding:0;list-style:none;}
    .ac_results li a
    {white-space: nowrap;text-decoration:none;display:block;color:#05a;padding:1px 3px;}
    .ac_results li
    {border:1px solid #fff;}
    .ac_over,.ac_results li a:hover
    {background:#c8e3fc;}
    .ac_results li a span
    {float:right;}
    .ac_result_tip
    {border-bottom:1px dashed #666;padding:3px;}

    head中的代码

    head
    <title>智能输入提示</title>
    <link rel="stylesheet" type="text/css" href="css/jquery.suggest.css">
    <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="js/j.dimensions.js"></script>
    <script type="text/javascript" src="js/aircity.js"></script>
    <script type="text/javascript" src="js/j.suggest.js"></script>
    <script type="text/javascript">
    $(
    function(){
    $(
    "#arrcity").suggest(citys,{hot_list:commoncitys,dataContainer:'#arrcity_3word',onSelect:function(){$("#city2").click();}, attachObject:'#suggest'});
    $(
    "#city2").suggest(citys,{hot_list:commoncitys,attachObject:"#suggest2"});
    });
    </script>

    body中的代码

    代码
    <div id="box">
    <h1>仿机票预定智能输入提示DEMO</h1>
    <input type="hidden" name="arrcity_3word" id="arrcity_3word" value="" />
    <label for="arrcity">出发城市:</label><input type="text" name="arrcity" id="arrcity" />
    <div id='suggest' class="ac_results">
    </div>
    <label for="city2">目的城市:</label><input type="text" name="city2" id="city2" />
    <div id='suggest2' class="ac_results">
    </div>
    <p>具体的功能如下:</p>
    <ol>
    <li>点击输入框,自动列出热门出行城市;</li>
    <li>支持中文/拼音/3字码 输入的智能提示;</li>
    <li>支持键盘方向键选择、回车键确定;</li>
    <li>支持选择后自定义callback函数;</li>
    <li>支持IE6、IE7、IE8、Firefox</li>
    </ol>
    </div>

    以上是很好的人提供的代码 很感谢 但是在这个基础上遇到的几个问题 我想分享 分享

    ********************************************************

    1.问题就是  asp.net 页面回车触发button按钮事件  所以不多说

    ********************************************************

    2问题: 在查询的时候这些数据是从一个js的数组里面取的 但是我们项目里面需要从数据库里面取出来的 所以做了一下操作来替代了里面声明数组的哪个js:

    在页面初始的时候调用这段代码 就从数据库里面取了

    代码
     //从数据库取出城市列表
        public void Gecitytlist()
        {
            DataTable dt 
    = new AirportSystem().GetAirport(nullnull);  //此方法就是从数据库取出来的城市列表 包括拼音 汉字 和三字代码
            
    if (dt != null && dt.Rows.Count > 0)
            {
                
    //commoncitys[0]=new Array('SZX','深圳','SHENZHEN','SZ');
                StringBuilder sb = new StringBuilder();
                sb.Append(
    "<script type='text/javascript'>");
                sb.Append(
    "var commoncitys=new Array();");

                
    for (Int32 i = 0; i < 15; i++)
                {
                    sb.Append(
    "commoncitys[" + i + "]=new Array('" + dt.Rows[i]["Code"+ "','" + dt.Rows[i]["CName"+ "','" + dt.Rows[i]["EName"+ "');");
                }

                sb.Append(
    "var citys=new Array();");

                
    for (Int32 i = 0; i < dt.Rows.Count; i++)
                {
                    sb.Append(
    "citys[" + i + "]=new Array('" + dt.Rows[i]["Code"+ "','" + dt.Rows[i]["CName"+ "','" + dt.Rows[i]["EName"+ "');");
                }

                sb.Append(
    "</script>");

                Page.ClientScript.RegisterStartupScript(
    typeof(String), "Array", sb.ToString());
            }
        }

    3********************************************************

    在我将这个做成用户控件的时候 也出现了小小的插曲 因为我将hidden设置为了ruant=“server” 所以id就变成了控件的id_本身的id

    这样就没问题

    这个就是我做这个的感想 分享分享 谢谢 呵呵

  • 相关阅读:
    class-决策树Decision Tree
    class-朴素贝叶斯NaiveBayes
    class-k近邻算法kNN
    [linux环境配置]个人用持续更新ing~
    [python基础] python生成wordcloud并保存
    [算法基础]快排、归并、堆排序比较
    [算法基础]斐波那契(recursion+loop)两种方式执行时间对比
    [python基础]xml_rpc远程调控supervisor节点进程
    [Supervisor]supervisor监管gunicorn启动DjangoWeb时异常退出
    [python基础] csv.wirterow()报错UnicodeEncodeError
  • 原文地址:https://www.cnblogs.com/wanglinglong/p/1689050.html
Copyright © 2011-2022 走看看