连接:
http://www.cnblogs.com/kyle_zhao/archive/2010/02/27/1674819.html
最近在研究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
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
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中的代码
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
< 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中的代码
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
< 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:
在页面初始的时候调用这段代码 就从数据库里面取了
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.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
这样就没问题
这个就是我做这个的感想 分享分享 谢谢 呵呵