jQuery往返城市和日期查询实例讲解


Posted in Javascript onOctober 09, 2015

大多旅游网站上都提供了一个城市和日期输入查询的功能。用户在输入框中只需输入城市的拼音或者简称就可以即时查询到相关城市的名称,选择日期时则是出现两个月的日历控件,只需点选日期即可,整个操作简捷明了。
本文用到了jquery ui库的datepicker插件来控制日历以及输入城市提示的插件。

jQuery往返城市和日期查询实例讲解

XHTML

<div class="qline"> 
  <label for="arrcity">出发城市:</label><input type="text" name="arrcity" class="input" 
id="arrcity" />  
  <div id="suggest" class="ac_results"></div> 
  <label for="city2">目的城市:</label><input type="text" name="city2" class="input" 
id="city2" /> 
  <div id="suggest2" class="ac_results"> </div> 
</div> 
<div class="qline"> 
  <label for="startdate">出发日期:</label><input type="text" name="startdate" class="input" 
id="startdate" /> 
  <label for="enddate">返回日期:</label><input type="text" name="enddate" class="input" 
id="enddate" /> 
</div>

设计城市和日期的输入框,注意使用了div#suggest和div#suggest2两个DIV是用来显示城市列表的,默认CSS控制为不显示。
CSS

.input{border:1px solid #999} 
.qline{line-height:24px; margin:10px} 
#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; line-height:18px} 
.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;}

上述样式主要是控制城市查询的外观,而日历控件的样式我们单独使用jquery ui的样式:

<link rel="stylesheet" type="text/css" href="css/jquery-ui.css" />

jQuery
首先要引用主要javascript:

<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript" src="js/jquery-ui.js"></script> 
<script type="text/javascript" src="js/aircity.js"></script> 
<script type="text/javascript" src="js/j.suggest.js"></script>

注意aircity.js是以数组的形式储存城市名称等数据。j.suggest.js是控制输入查询城市的,大家可以直接下载使用。
主要看下页面使用jQuery。

$(function(){ 
  $("#arrcity").suggest(citys,{ 
    hot_list:commoncitys, 
    attachObject:"#suggest" 
  }); 
  $("#city2").suggest(citys,{ 
    hot_list:commoncitys, 
    attachObject:"#suggest2" 
  }); 
});

上述代码实现了输入查询城市,调用城市数据的功能。hot_list:commoncitys是指初始的热门城市,attachObject:"#suggest"是设置输入时关联的显示城市列表的DIV。
接下来要加入控制日历的代码。
我们需要控制日历的有效日期,即显示当前日期,在当前日期前的日期都不能选中,因为你不可能选择已经过去的日期作为出发日期。还有就是要显示连续的两个月的日历。代码如下:

today=new Date(); 
var year = today.getFullYear(); 
var month = today.getMonth(); 
var day = today.getDate(); 
$("#startdate,#enddate").css("color","#aaa").attr("value","yyyy-mm-dd"); 
$("#startdate,#enddate").datepicker({ 
  minDate: new Date(year, month, day+1), 
  numberOfMonths: 2, 
  onClose:function(){ 
   $(this).css("color","#000"); 
  } 
});

代码首先获取了当前日期(即今天),然后初始日期输入框的内容和样式,再调用detepicker插件,设置最小日期为当前日期,设置numberOfMonths为连续的两个月,此外当选择日期后,调用函数将输入框的样式改变。将以上代码追加到城市输入查询代码的后面即可。
如此,你的城市和日期选择功能已经实现。本文未涉及到日期的验证,如返回日期不能小于出发日期,这个就留给大家去想吧。

以上就是如何使用jQuery实现城市查询和日历显示的整个流程,希望对大家的学习有所帮助。

Javascript 相关文章推荐
Add a Picture to a Microsoft Word Document
Jun 15 Javascript
再谈javascript面向对象编程
Mar 18 Javascript
Javascript中的包装类型介绍
Apr 02 Javascript
javascript实现dom元素可拖动
Mar 21 Javascript
浅析JavaScript 箭头函数 generator Date JSON
May 23 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
Apr 27 Javascript
webpack多页面开发实践
Dec 18 Javascript
vue之浏览器存储方法封装实例
Mar 15 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
Jan 25 Javascript
VUE前后端学习tab写法实例
Aug 06 Javascript
VUE+elementui面包屑实现动态路由详解
Nov 04 Javascript
js实现简单的点名器随机色实例代码
Sep 20 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
Oct 09 #Javascript
jQuery实现连续动画效果实例分析
Oct 09 #Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
Oct 09 #Javascript
jQuery拖动布局其结果保存到数据库
Oct 09 #Javascript
JS实现可展开折叠层的鼠标拖曳效果
Oct 09 #Javascript
JavaScript实现横向滑出的多级菜单效果
Oct 09 #Javascript
JS实现样式清新的横排下拉菜单效果
Oct 09 #Javascript
You might like
PHP实现时间轴函数代码
2011/10/08 PHP
PHP迭代器的内部执行过程详解
2013/11/12 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
yii分页组件用法实例分析
2015/12/28 PHP
php使用scandir()函数扫描指定目录下所有文件示例
2019/06/08 PHP
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
2013/12/13 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
2015/11/03 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
深入理解Nodejs Global 模块
2017/06/03 NodeJs
js实现HTML中Select二级联动的实例
2018/01/05 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
[00:11]战神迅矛
2019/03/06 DOTA
python通过线程实现定时器timer的方法
2015/03/16 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
2018/12/15 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
比利时香水网上商店:NOTINO
2018/03/28 全球购物
美国便宜的横幅和标志印刷在线:Best of Signs
2019/05/29 全球购物
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
校园摄影活动策划方案
2014/02/05 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
感恩教育活动总结
2014/05/05 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
会计求职信
2014/05/29 职场文书
银行奉献演讲稿
2014/09/16 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
导游词之永济鹳雀楼
2020/01/16 职场文书