一、下载Jquery-ui:
(1)下载教程:https://www.runoob.com/jqueryui/jqueryui-download.html
(2)下载地址:https://jqueryui.com/download/all/(上一个的下载地址可能不成功)
二、解压,将对应的js,css导入项目
(1)解压结果示例:
(2)jsp引入示例:也可以不导入压缩版(min.js/min.css)
<link rel="stylesheet" type="text/css" href="<c:url value='/css/jquery-ui.min.css'/>">
<script type="text/javascript" src="<c:url value='/js/jquery.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/jquery-ui.min.js'/>"></script>
(3)注意点1:ui.js和ui.css最好配对导入;query.js最好使用压缩包附带的,避免版本问题造成的错误。
(4)注意点2:导入样式需要的图片。
》导入方式1:自定义位置,需要去跟踪源码
》导入方式2:根据错误提示建立图片放置位置(我使用的是这个。。。方便)。通常他都会有默认位置。
三、使用datepicker:
(1)绑定事件:绑定onfocus或onclick事件。
演示:
jsp代码:
<input type="text" name="sr" id="sr" class="input02" onfocus="setTime();" readonly="readonly">
js代码:
function setTime() {
$(".input02").datepicker({
numberOfMonths:1, /!*设置显示几个月*!/
showButtonPanel:true, /!*是否显示按钮面板*!/
prevButton: true, /!* 是否显示上个月按钮*!/
nextButton:true, /!* 是否显示下月按钮*!/
dateFormat:'yy-mm-dd', /!*日期格式*!/
clearText:"清除", /!*清除日期的按钮名称*!/
closeText:"关闭", /!*关闭按钮的名称*!/
prevText:'<上月', /!*上月按钮*!/
nextText:'下月>', /!*下月按钮*!/
yearSuffix:'年', /!* 年的后缀*!/
showMonthAfterYear:true, /!*是否把月放在年的后面*!/
monthNames:['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'], /!*月的名称*!/
monthNamesShort: ['一','二','三','四','五','六', '七','八','九','十','十一','十二'], /!*月的简称*!/
dayNames:['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], /!* 星期几的名称和顺序*!/
dayNamesShort:['周日','周一','周二','周三','周四','周五','周六'], /!*星期的简称*!/
dayNamesMin:['日','一','二','三','四','五','六'] /!* 最简称*!/
});
}
问题:无论是onfocus事件还是onclick事件,第一次点击不显示选择框,第二次点击才显示选择框。网页查看源码时,在在第一次点击的时候会在源码中动态加载datepicker的显示模块,第二次点击时,模块才会被真正调用
第一次点击是实例化日期组件,第二次开始才是操作日期组件,所以应该直接调用组件。
(2)不绑定事件:对绑定事件bug的补救
演示:
1 $(function () {
2 $(".input02").datepicker({
3 numberOfMonths:1, /*设置显示几个月*/
4 showButtonPanel:true, /*是否显示按钮面板*/
5 prevButton: true, /* 是否显示上个月按钮*/
6 nextButton:true, /* 是否显示下月按钮*/
7 dateFormat:'yy-mm-dd', /*日期格式*/
8 clearText:"清除", /*清除日期的按钮名称*/
9 closeText:"关闭", /*关闭按钮的名称*/
10 prevText:'<上月', /*上月按钮*/
11 nextText:'下月>', /*下月按钮*/
12 yearSuffix:'年', /* 年的后缀*/
13 showMonthAfterYear:true, /*是否把月放在年的后面*/
14 monthNames:['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'], /*月的名称*/
15 monthNamesShort: ['一','二','三','四','五','六', '七','八','九','十','十一','十二'], /*月的简称*/
16 dayNames:['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], /* 星期几的名称和顺序*/
17 dayNamesShort:['周日','周一','周二','周三','周四','周五','周六'], /*星期的简称*/
18 dayNamesMin:['日','一','二','三','四','五','六'] /* 最简称*/
19 });
20 });
四、datepicker参数设置:
我的演示:
$(".input02").datepicker({
numberOfMonths:1, /*设置显示几个月*/
showButtonPanel:true, /*是否显示按钮面板*/
prevButton: true, /* 是否显示上个月按钮*/
nextButton:true, /* 是否显示下月按钮*/
dateFormat:'yy-mm-dd', /*日期格式*/
clearText:"清除", /*清除日期的按钮名称*/
closeText:"关闭", /*关闭按钮的名称*/
prevText:'<上月', /*上月按钮*/
nextText:'下月>', /*下月按钮*/
yearSuffix:'年', /* 年的后缀*/
showMonthAfterYear:true, /*是否把月放在年的后面*/
monthNames:['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'], /*月的名称*/
monthNamesShort: ['一','二','三','四','五','六', '七','八','九','十','十一','十二'], /*月的简称*/
dayNames:['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], /* 星期几的名称和顺序*/
dayNamesShort:['周日','周一','周二','周三','周四','周五','周六'], /*星期的简称*/
dayNamesMin:['日','一','二','三','四','五','六'] /* 最简称*/
});
五、我的效果: