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

 连接:

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

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

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

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

  

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

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

    下面是代码部分。

    jquery.suggest.css

    

ExpandedBlockStart.gif 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中的代码

 

ExpandedBlockStart.gif 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中的代码

 

ExpandedBlockStart.gif 代码
 
    
< 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:

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

 

ExpandedBlockStart.gif 代码
  // 从数据库取出城市列表
     public   void  Gecitytlist()
    {
        DataTable dt 
=   new  AirportSystem().GetAirport( null null );  //此方法就是从数据库取出来的城市列表 包括拼音 汉字 和三字代码
        
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

这样就没问题

 

 

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

转载于:https://www.cnblogs.com/wanglinglong/archive/2010/03/18/1689050.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值