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 相关文章推荐
document 和 document.all 分别什么时候用
Jun 22 Javascript
jquery的颜色选择插件实例代码
Oct 02 Javascript
Jquery 基础学习笔记
May 29 Javascript
js中的getAttribute方法使用示例
Aug 01 Javascript
Angular用来控制元素的展示与否的原生指令介绍
Jan 07 Javascript
JavaScript数据类型判定的总结笔记
Jul 31 Javascript
微信小程序 框架详解及实例应用
Sep 26 Javascript
js实现返回顶部效果
Mar 10 Javascript
Ajax验证用户名或昵称是否已被注册
Apr 05 Javascript
详解vue配置后台接口方式
Mar 29 Javascript
重学JS 系列:聊聊继承(推荐)
Apr 11 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 Vue.js
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 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
PHP 变量的定义方法
2010/01/26 PHP
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
PHP教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
利用“多说”制作留言板、评论系统
2015/07/14 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
javaScript 页面自动加载事件详解
2014/02/10 Javascript
使用FlexiGrid实现Extjs表格效果方法分享
2014/12/16 Javascript
Jquery Ajax xmlhttp请求成功问题
2015/02/04 Javascript
JavaScript中的分号插入机制详细介绍
2015/02/11 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
jQuery入门之层次选择器实例简析
2015/12/11 Javascript
JS实现的添加弹出层并完成锁屏操作示例
2017/04/07 Javascript
highcharts 在angular中的使用示例代码
2017/09/20 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
2019/05/30 jQuery
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
JS原型prototype和__proto__用法实例分析
2020/03/14 Javascript
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
Python基于多线程操作数据库相关问题分析
2018/07/11 Python
便捷提取python导入包的属性方法
2018/10/15 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
Europcar意大利:汽车租赁
2019/07/07 全球购物
俄罗斯一家时尚女装商店:Charuel
2019/12/04 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
幼儿园教师奖惩制度
2014/02/01 职场文书
授权委托书(完整版)
2014/09/10 职场文书
施工安全员岗位职责
2015/04/11 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
oracle表分区的概念及操作
2021/04/24 Oracle
opencv检测动态物体的实现
2021/07/21 Python