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 相关文章推荐
jquery $.ajax入门应用一
Nov 19 Javascript
javascript 密码强弱度检测万能插件
Feb 25 Javascript
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
Feb 26 Javascript
jQuery中parentsUntil()方法用法实例
Jan 07 Javascript
Node.js文件操作方法汇总
Mar 22 Javascript
JavaScript Math 对象常用方法总结
Apr 28 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
Aug 21 Javascript
JavaScript实现简单评论功能
Aug 17 Javascript
Nginx 配置多站点vhost 的方法
Jan 07 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
Jan 25 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
Aug 16 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
Jan 24 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
PHP开发过程中常用函数收藏
2009/12/14 PHP
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
文本框的字数限制功能jquery插件
2009/11/24 Javascript
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
浅谈JavaScript字符串与数组
2015/06/03 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
使用React代码动态生成栅格布局的方法
2020/05/24 Javascript
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
Django用户身份验证完成示例代码
2020/04/03 Python
利用Python实现学生信息管理系统的完整实例
2020/12/30 Python
八年级语文教学反思
2014/02/11 职场文书
吧主申请感言怎么写
2015/08/03 职场文书
患者身份识别制度
2015/08/06 职场文书
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android