datepicker 插件

datepicker
<script>
$(function () {
$("#datepicker").datepicker({
showAnim: 'slideDown',//show 默认,slideDown 滑下,fadeIn 淡入,blind 百叶窗,bounce 反弹,Clip 剪辑,drop 降落,fold 折叠,slide 滑动
minDate: -1,//最小可选择的日期,可以是Date对象,或者是数字(从今天算起,例如+7),或者有效的字符串('y'代表年, 'm'代表月, 'w'代表周, 'd'代表日, 例如:'+1m +7d')。
maxDate: +17,//最大可选择的日期,同上
defaultDate: +4, //默认的焦点日期,同上
duration: 'fast',//动画展示的时间,可选是"slow", "normal", "fast",''代表立刻,数字代表毫秒数
firstDay: 0,//设置一周中的第一天。默认星期天为0,星期一为1,以此类推。
nextText: '下一月',//设置“下个月”链接的显示文字。鼠标放上去的时候
prevText: '上一月',//设置“上个月”链接的显示文字。
showButtonPanel: true,//是否显示按钮面板 
currentText: '今天',//设置当天按钮的文本内容,此按钮需要通过showButtonPanel参数的设置才显示。
gotoCurrent: false,//如果设置为true,则点击今天的按钮时,将移至当前已选中的日期,而不是今天。
changeMonth: true,显示月份的下拉框
changeYear: true, 显示年份的下拉框
numberOfMonths:3 ,设置 numberOfMonths 选项为一个整数 2,或者大于 2 的整数,来在一个 datepicker 中显示多个月份。
showOtherMonths: true,在日期框中显示其他月份的日期
selectOtherMonths: true,在日期框中选择其他月份的日期
dateFormat:格式化日期mm/dd/yy,yy-mm-dd,d M, y
showOn: "button",设置点击输入框旁边的图标来显示 datepicker
buttonImage: "images/calendar.gif",”button”的背景图片
buttonImageOnly: true。只点击图片的时候打开datepicker
altField: "#alternate",使用 altField 和 altFormat 选项,无论何时选择日期,会在另一个输入框中填充带有一定格式的日期
altFormat: "DD, d MM, yy",
通过 minDate 和 maxDate 选项限制可选择的日期范围。
{ minDate: -20, maxDate: "+1M +10D" }
showWeek: true,datepicker 可以显示一年中的第几周
firstDay: 1
});
});
</script>
</head>


<p>日期:
<input type="text" id="datepicker">
</p>
datepicker提供了相关事件,在实际开发中最常用的无非就是这三个,打开前beforeShow,关闭后onClose,onselect选中,我们可以通过控制台打印相关参数调试一下具体怎么使用,
onselect: function (dateText, inst) {//选中事件
console.log("onselect, dateText", dateText);
console.log("onselect, inst", inst);
},
beforeShow: function (input) {//日期控件显示面板之前
console.log("beforeShow, input", input);
},
onClose: function (dateText, inst) {//当日期面板关闭后触发此事件(无论是否有选择日期)
console.log("onClose, dateText", dateText);
console.log("onClose, inst", inst);
}

这里说一下onselect事件,一般我们实际项目中都会两个日期选择框,如一个开始日期,一个结束日期。那么我们肯定是会要做开始日期必须小于结束日期的校验,而我们通过onselect事件去改变另外一个日期框的最大/小日期即可做到输入的控制,如图:

<input class="ipt-datepicker" type="text" id="schduleDateStart" placeholder="排班开始日期.." name="schduleDateStart">
<input class="ipt-datepicker" type="text" id="schduleDateEnd" placeholder="排班结束日期.." name="schduleDateEnd">

$("#schduleDateStart").datepicker({
onSelect: function (dateText, inst) {
$("#schduleDateEnd").datepicker("option", "minDate", dateText);
}
});
$("#schduleDateEnd").datepicker({
onSelect: function (dateText, inst) {
$("#schduleDateStart").datepicker("option", "maxDate", dateText);
}
});

4,汉化:
到此为止,我们基本可以在实际项目中使用这个控件了。但是很遗憾,这个控件是老外开发的,所以底层肯定是英文的,这样用户体验肯定不好,所以我们需要引入一个zh-CN.js对控件汉化。代码很简单,当然像pervText,nextText这些我们也可以根据自己的需求做相关修改:
jQuery(function($){
$.datepicker.regional['zh-CN'] = {
closeText: '关闭',
prevText: '<上月',
nextText: '下月>',
currentText: '今天',
monthNames: ['一月','二月','三月','四月','五月','六月',
'七月','八月','九月','十月','十一月','十二月'],
monthNamesShort: ['','','','','','',
'','','','','十一','十二'],
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
dayNamesMin: ['','','','','','',''],
dateFormat: 'yy-mm-dd', firstDay: 1,
isRTL: false};
$.datepicker.setDefaults($.datepicker.regional['zh-CN']);
});

$("#schduleDateStart").datepicker("option","maxDate",dateText);
  $( "#datepicker" ).datepicker( "option", "showAnim", $( this ).val() );


选择要搜索的日期范围。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI 日期选择器(Datepicker) - 选择一个日期范围</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
<script>
$(function() {
$( "#from" ).datepicker({
defaultDate: "+1w",默认的焦点日期,向后加一周
changeMonth: true,
numberOfMonths: 3,
onClose: function( selectedDate ) {
$( "#to" ).datepicker( "option", "minDate", selectedDate );
}
});
$( "#to" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3,
onClose: function( selectedDate ) {
$( "#from" ).datepicker( "option", "maxDate", selectedDate );
}
});
});
</script>
</head>
<body>
<label for="from">从</label>
<input type="text" id="from" name="from">
<label for="to">到</label>
<input type="text" id="to" name="to">
</body>
</html>

 

posted @ 2018-04-09 17:56  姗崽崽崽  阅读(351)  评论(0编辑  收藏  举报