这篇文章主要介绍了jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate),需要的朋友可以参考下
使用jQuery ui首先需要引入jQuery类库,jQuery ui js脚本和jQuery ui css样式表。代码示例如下:
复制代码 代码如下: <script src="js/jquery-1.7.1.js"></script> <script src="js/jquery-ui-1.8.18.custom.min.js"></script> <link rel="stylesheet" type="text/css" href="css/smoothness/jquery-ui-1.8.18.custom.css">
注:引入js脚本时,需先引入jQuery类库,后引入jQuery ui 脚本
下面为两种实现步骤:
思路一:
第一步 实现两个datepicker组件。
需要定义两个input标签,类型为text,并指定id属性
HTML代码如下
复制代码 代码如下: 开始日期:<input type="text" id="start"> 结束日期:<input type="text" id="end">
在js代码中得到两个input元素的jQuery对象,并将其转化为datepicker组件
Js代码如下
复制代码 代码如下: $(document).ready(function(){ $("#start").datepicker(); $("#end").datepicker(); });
实现以上操作后,在页面中点击文本框,如果出现datepicker则代表成功。
第二步 设置开始和结束日期
当选择开始日期的值后,则结束日期的最小值应该就是开始日期;同理,当选择结束日期后,开始日期的最大值则应该是结束日期。我们可以利用datepicker中的onSelect属性来设置当选择指定日期后触发的事件,通过该事件来指定对应的datepicker最小日期或最大日期。
Js代码如下
复制代码 代码如下: $("#start").datepicker({ onSelect:function(dateText,inst){ $("#end").datepicker("option","minDate",dateText); } }); $("#end").datepicker({ onSelect:function(dateText,inst){ $("#start").datepicker("option","maxDate",dateText); } });
注:匿名函数中的dateText属性为当前选择日期的字符串
思路二:
第一步 同时获得两个文本框对象,并将其转换为datepicker(利用jQuery的选择器)
HTML代码如下
复制代码 代码如下: 开始日期:<input type="text" id="start"> 结束日期:<input type="text" id="end">
Js代码如下
复制代码 代码如下: var dates = $("#start,#end"); dates.datepicker();
第二步 同样在选择日期后,触发onSelect事件,调用函数传递selectedDate参数,
函数体中首先判断触发事件的是开始日期还是结束日期,通过该判断来指定设置minDate或者是maxDate,然后利用not()函数,来反向选择另一个datepicker对象,并设置其对应的属性。
Js代码如下
复制代码 代码如下: dates.datepicker({ onSelect: function(selectedDate){ var option = this.id == "start" ? "minDate" : "maxDate"; dates.not(this).datepicker("option", option, selectedDate); } });
这样在设置一方后,另一方就会被限制了。
实现的效果如图:
|