全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)

三款日期选择插件推荐给大家:

1.My97DatePicker

纯原生JS,专注于PC端,支持IE6+;页面上只需要引入WdatePicker.js文件,但是My97DatePicker整个目录是一个整体,最好不要破坏里面的目录结构,否则就会报错找不到指定文件。

(1)直接在html文件中写入

<input id="ipt" type="text" onclick="WdatePicker()" />

注意:由于此插件是原生JS写的,所以绑定点击事件请务必请用原生JS的点击事件绑定方法,如果使用$('#ipt').on('click',function( ){ }),在选中一个日期并失去焦点后,想要重新选择就必须点击两次次才能唤起日历。
(2)如果给输入框添加class="Wdate",输入框的右边会出现一个日期图标。
(3)可以通过其他元素来弹出日期选择框,直接给该元素添加onclick="WdatePicker({el: '#ipt'})"
(4)可以通过添加position属性来定义弹出位置,例如 onclick="WdatePicker({position: {left:100,top:50}})"
(5)可以通过添加dateFmt属性来定义日期格式,例如 onclick="WdatePicker({dateFmt: 'MM-yy'})"
(6)如果没有定义onpicked和oncleared事件,将自动触发文本框的onchange事件,定义这些事件的方式如下

document.getElementById('ipt').onclick = function(){
 WdatePicker({
  onpicked: function(){
   // 配合jquery.validate.js插件,在这里手动添加校验
  },
  oncleared: function(){
   // 配合jquery.validate.js插件,在这里手动添加校验
  },
 });    
}

(7)可以实现日期选择联动

<input id="d5221" type="text" onfocus="var d5222=$dp.$('d5222');WdatePicker({onpicked:function(){d5222.focus();},maxDate:'#F{$dp.$D(\'d5222\')}'})" />
<input id="d5222" type="text" onfocus="WdatePicker({minDate:'#F{$dp.$D(\'d5221\')}'})" />

(8)还能将选中的值拆分到文本框

<input type="text" id="d523_y" size="5" /> 年
<input type="text" id="d523_M" size="3" /> 月
<input type="text" id="d523_d" size="3" /> 日
<input type="text" id="d523_HH" size="3" /> 时
<input type="text" id="d523_mm" size="3" /> 分
<input type="text" id="d523_ss" size="3" /> 秒
<img onclick="WdatePicker({el:'d523',dateFmt:'yyyy-MM-dd HH:mm:ss',onpicked:pickedFunc})" src="../../My97DatePicker/skin/datePicker.gif" width="16" height="22" align="absmiddle" style="cursor:pointer" />

<script>
 function pickedFunc(){
  $dp.$('d523_y').value=$dp.cal.getP('y');
  $dp.$('d523_M').value=$dp.cal.getP('M');
  $dp.$('d523_d').value=$dp.cal.getP('d');
  $dp.$('d523_HH').value=$dp.cal.getP('H');
  $dp.$('d523_mm').value=$dp.cal.getP('m');
  $dp.$('d523_ss').value=$dp.cal.getP('s');
 }
</script>


更多功能和参数请去官网查询http://www.my97.net/dp/demo/resource/3.asp。 

2.jquery.datepicker.js

主要用于PC端,需要同时引入jquery.js和jquery-ui.js,样式方面除了引入jquery-ui.css,还要带上jquery-ui目录中的images文件夹,否则就会报错找不到指定的文件。

(1)引入相关文件后,直接就是$('#ipt').datepicker( );

(2)常用的几个参数配置如下

$("#ipt").datepicker({
 numberOfMonths:1, // 显示几个月 
 showButtonPanel:true, // 是否显示按钮面板 
 dateFormat: 'yy-mm-dd', // 日期格式 
 clearText:"清除", // 清除日期的按钮名称 
 closeText:"关闭", // 关闭选择框的按钮名称 
 yearSuffix: '年', // 年的后缀 
 showMonthAfterYear:true, // 是否把月放在年的后面 
 defaultDate:'2011-03-10', // 默认日期 
 minDate:'2011-03-05', // 最小日期 
 maxDate:'2011-03-20', // 最大日期 
 monthNames: ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'], 
 dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], 
 dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], 
 dayNamesMin: ['日','一','二','三','四','五','六'], 
 onSelect: function(selectedDate) {
 // 选择日期后执行的操作 
 alert(selectedDate); 
 } 
}); 

3.Mobiscroll

专注于移动端,依赖于jquery类库,有多种样式可供选择,根据需要引入各类文件。

(1)demo如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">
 <title>Mobiscroll日期时间插件</title>

 <!-- 核心CSS样式 -->
 <link href="dev/css/mobiscroll.core-2.5.2.css" rel="external nofollow" rel="stylesheet" type="text/css" />
 <!-- 添加动画效果 -->
 <!-- <link href="dev/css/mobiscroll.animation-2.5.2.css" rel="external nofollow" rel="stylesheet" type="text/css" /> -->
 <!-- 安卓样式 -->
 <link href="dev/css/mobiscroll.android-ics-2.5.2.css" rel="external nofollow" rel="stylesheet" type="text/css" />

 <!-- 或者引用一整个压缩好的css文件 -->
 <!-- <link href="css/mobiscroll.custom-2.5.2.min.css" rel="external nofollow" rel="stylesheet" type="text/css" /> -->

 <style type="text/css">
 .dwl{
  font-size: 20px;
 }
 .dwbg .dwb{
  font-size: 20px;
 }
 table td:first-child{
  padding-right: 15px;
 }
 table td:last-child{
  padding-left: 15px;
 }
 table .dww{
  min-width: 150px !important;
 }
 </style>
</head>

<body>
 <input type="text" name="appDate" id="appDate" />

 <!-- jquery类库 -->
 <script src="dev/jquery-1.9.1.js"></script>

 <!-- 核心js文件 -->
 <script src="dev/js/mobiscroll.core-2.5.2.js" type="text/javascript"></script>
 <!-- 添加中文 -->
 <!-- <script src="dev/js/mobiscroll.core-2.5.2-zh.js" type="text/javascript"></script> -->
 <!-- 针对日期时间 -->
 <script src="dev/js/mobiscroll.datetime-2.5.1.js" type="text/javascript"></script>
 <!-- 添加中文 -->
 <!-- <script src="dev/js/mobiscroll.datetime-2.5.1-zh.js" type="text/javascript"></script> -->
 <!-- 安卓端 -->
 <!-- <script src="dev/js/mobiscroll.android-ics-2.5.2.js" type="text/javascript"></script> -->

 <!-- 或者引用一整个压缩好的js文件 -->
 <!-- <script src="js/mobiscroll.custom-2.5.2.min.js" type="text/javascript"></script> -->

 <script type="text/javascript">
 $(function () {
  var currYear = (new Date()).getFullYear();
  var opt={};
  opt.date = {preset : 'date'};
  opt.default = {
  theme: 'android-ics light', // 皮肤样式
  display: 'bottom', // 显示方式
  mode: 'scroller', // 日期选择模式
  startYear: currYear , //开始年份
  endYear: currYear + 30, //结束年份
  dateFormat: 'mm/yyyy ', // 日期格式
  dateOrder: 'mmyy', // 面板中日期排列格
  setText: '确定', // 确认按钮名称
   cancelText: '取消',// 取消按钮名籍我
  monthText: '月', // 面板中月文字
  yearText: '年', // 面板中年文字
  };

  $("#appDate").val('').scroller('destroy').scroller($.extend(opt['date'], opt['default']));
 });
 </script>
</body>
</html>

(2)解决与移动端软键盘的定位冲突

如果页面有多个输入框,当点击一个输入框时会唤起设备自带的软键盘,然后如果直接点击另一个id名为appDate的日期输入框,即失去焦点的同时,获取到了mobiscroll绑定的输入框的焦点,结果发现之前的软键盘下沉消失之后,本该显示在底部的日期选择部件显示在了屏幕的上方,解决办法是找到mobiscroll.core-2.5.2.js 这个文件,搜索focus关键字,将对应的地方改成:

elm.bind('focus.dw', function () {
 setTimeout(function(){
  that.show();
 },300) 
});

其中300ms就是设置的延迟时间,这样以来再做相同的操作,就是等之前的软键盘下沉消失之后从底部浮上显示日期选择部件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# My97DatePicker  # jquery.datepicker  # Mobiscroll  # angularjs获取到My97DatePicker选中的值方法  # ASP.NET My97DatePicker日期控件实现OA日期记事功能  # ASP.NET使用My97DatePicker日期控件实例  # JQuery日历插件My97DatePicker日期范围限制  # JS日期控件My97DatePicker基本用法  # 输入框  # 可以通过  # 就会  # 绑定  # 在这里  # 找不到  # 弹出  # 报错  # 文本框  # 是一个  # 类库  # 几个  # 专注于  # 放在  # 多个  # 如果没有  # 推荐给  # 几个月  # 可以实现  # 自带 


相关文章: 建站之星北京办公室:智能建站系统与小程序生成方案解析  如何在企业微信快速生成手机电脑官网?  如何在云虚拟主机上快速搭建个人网站?  网站app免费制作软件,能免费看各大网站视频的手机app?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  成都网站制作报价公司,成都工业用气开户费用?  如何用西部建站助手快速创建专业网站?  宁波自助建站系统如何快速打造专业企业网站?  动图在线制作网站有哪些,滑动动图图集怎么做?  在线制作视频的网站有哪些,电脑如何制作视频短片?  c++怎么用jemalloc c++替换默认内存分配器【性能】  已有域名建站全流程解析:网站搭建步骤与建站工具选择  网站好制作吗知乎,网站开发好学吗?有什么技巧?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  教程网站设计制作软件,怎么创建自己的一个网站?  无锡营销型网站制作公司,无锡网选车牌流程?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  如何选择高性价比服务器搭建个人网站?  太平洋网站制作公司,网络用语太平洋是什么意思?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  ui设计制作网站有哪些,手机UI设计网址吗?  怀化网站制作公司,怀化新生儿上户网上办理流程?  如何使用Golang table-driven基准测试_多组数据测量函数效率  高防服务器:AI智能防御DDoS攻击与数据安全保障  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  建站主机是什么?如何选择适合的建站主机?  如何在建站之星绑定自定义域名?  小程序网站制作需要准备什么资料,如何制作小程序?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  Swift中循环语句中的转移语句 break 和 continue  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  如何快速登录WAP自助建站平台?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  定制建站哪家更专业可靠?推荐榜单揭晓  网站网页制作专业公司,怎样制作自己的网页?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  沈阳制作网站公司排名,沈阳装饰协会官方网站?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  建站OpenVZ教程与优化策略:配置指南与性能提升  建站之星价格显示格式升级,你的预算足够吗?  宝塔面板创建网站无法访问?如何快速排查修复?  建站之星如何通过成品分离优化网站效率?  建站之星如何助力企业快速打造五合一网站?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  香港服务器租用费用高吗?如何避免常见误区?  建站之星如何开启自定义404页面避免用户流失?  如何获取开源自助建站系统免费下载链接?  如何选择靠谱的建站公司加盟品牌?  在线制作视频网站免费,都有哪些好的动漫网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。