首页 > 其他分享 >纯js可定制的跨浏览器日期时间选择器插件

纯js可定制的跨浏览器日期时间选择器插件

时间:2024-12-05 16:57:19浏览次数:5  
标签:插件 js rd 日期 options 时间 time 选择器

Rome是一款纯js可定制的跨浏览器日期时间选择器插件。该日期时间选择器不依赖于jquery,但它依赖于moments.js。可以通过CSS文件来自定义该日期时间选择器的外观样式。

在线预览  下载

 

 安装

可以通过Bower或nmp来安装该日期时间选择器插件。

npm install --save rome
bower install --save rome                
              

 使用方法

你可以使用自定义版本的moment.js文件,配合使用rome.standalone.js

<script src='moment.js'></script>
<script src='rome.standalone.js'></script>                
              

你也可以直接使用rome.js文件,它里面包含了moment.js文件。

<script src='rome.js'></script>                
              

 API

rome的API中有一些可以使用的公共方法。

rome.find(elem)                
              

返回关联elem的日期时间对象,或返回null。DOM元素只能有一个关联的日期时间对象。

rome(elem, options={})                
              

这个方法创建一个日期对象实例,并使用elem元素来关联它。这个关联对象不能使用.destroy()方法销毁。在后面调用rome(elem)方法将调用这个关联对象,而不是创建一个新的实例。

 

 可用参数

参数 描述
appendTo 日期时间选择器的DOM元素被添加到何处。用'parent'作为父元素。
autoClose 设置为true时,日期时间选择器在选择了一个日期后将自动关闭,(或时间:要求time: true并且date: false)。只使用'time'一个值的时候,只会在时间被选择时改变选择器。
autoHideOnBlur 当焦点离开输入框时隐藏日期时间选择器。
autoHideOnClick 当点击后立刻隐藏日期时间选择器。
date 日期选择器显示天数,并运行在月之间切换。
dateValidator 校验给定的日期是否有效。接受一个Date参数。
dayFormat 日期选择器上的天数的格式。
initialValue 用于初始化日期时间选择器的值。可用StringDatemoment
inputFormat 使用input字段来格式化日期字符串。
invalidate 确保在失去焦点时日期是有效的。
strictParse 以严格的方式比较inputFormat,只有部分匹配的被丢弃。
max Disallow dates past max。可用StringDatemoment
min Disallow dates before min。可用StringDatemoment
monthFormat 月和年的格式字符串。
monthsInCalendar 在日期选择器中渲染多少个月。
required 字段是否是必须的或不允许空值。
styles 日期时间选择器上的CSS样式的名称。
time 日期时间选取上显示的当前时间,并允许使用下拉列表来改变时间。
timeFormat 日期时间选择器上的时间字符串格式。
timeInterval 在下列列表中每个选项的时间间隔的秒数。
timeValidator Function to validate that a given time is considered valid.Receives a native Date parameter.
weekdayFormat Format used to display weekdays. Takes min (Mo), short (Mon), long (Monday), or an array with seven strings of your choosing.
weekStart Day considered the first of the week. Range: Sunday 0 - Saturday 6
 默认参数
{
  "appendTo": document.body,
  "autoClose": true,
  "autoHideOnBlur": true,
  "autoHideOnClick": true,
  "date": true,
  "dateValidator": Function.prototype,
  "dayFormat": "DD",
  "initialValue": null,
  "inputFormat": "YYYY-MM-DD HH:mm",
  "invalidate": true,
  "max": null,
  "min": null,
  "monthFormat": "MMMM YYYY",
  "monthsInCalendar": 1,
  "required": false,
  "strictParse": false,
  "styles": {
    "back": "rd-back",
    "container": "rd-container",
    "date": "rd-date",
    "dayBody": "rd-days-body",
    "dayBodyElem": "rd-day-body",
    "dayConcealed": "rd-day-concealed",
    "dayDisabled": "rd-day-disabled",
    "dayHead": "rd-days-head",
    "dayHeadElem": "rd-day-head",
    "dayRow": "rd-days-row",
    "dayTable": "rd-days",
    "month": "rd-month",
    "next": "rd-next",
    "positioned": "rd-container-attachment",
    "selectedDay": "rd-day-selected",
    "selectedTime": "rd-time-selected",
    "time": "rd-time",
    "timeList": "rd-time-list",
    "timeOption": "rd-time-option"
  },
  "time": true,
  "timeFormat": "HH:mm",
  "timeInterval": 1800,
  "timeValidator": Function.prototype,
  "weekdayFormat": "min",
  "weekStart": moment().weekday(0).day()
}              
            

 方法

当你使用rome(elem)方法创建了日期时间选择器后,你将获得一个cal对象实例。下面是一些可用的方法,大部分方法返回都返回日期时间对象,使之可以链式编程。

  • .show():显示日期时间选择器。如果是和input关联,日期时间选择器会绝对定位在它的下方。
  • .hide():隐藏日期时间选择器。
  • .id:为Rome对象自动生成唯一的标识符。
  • .container:包裹日期时间选择器的DOM元素。
  • .associated:和日期时间选择器对象关联的DOM元素。它是你用于创建日期时间选择器的input元素或它的父元素。
  • .getDate():使用原生的Date对象返回当前的日期。当input元素是空的时候,如果required: false将获得null
  • .getDateString(format?):返回日期时间选择器上定义的当前日期,并用options.inputFormat或你选择的格式来格式化该日期。当input元素是空的时候,如果required: false将获得null
  • .getMoment():返回当前日期时间选择器的moment对象的一个副本。当input元素是空的时候,如果required: false将获得null
  • .destroy():从DOM中移除日期时间选择器矢量,并移除所有的关联事件。 The only responsive API method becomes the .restore method described below, the rest of the API becomes no-op methods. After emitting the destroyed event, all event listeners are removed from the instance.
  • .destroyed:如果日期时间选择器处于销毁状态返回true
  • .restore(options?):使用提供的参数恢复日期时间选择器。关联的DOM元素不能被改变。
  • .options(options?):如果提供了一个options对象,它将销毁日期时间选择器对象,并用提供的options来重新初始化选择器。效果和在调用了.destroy()方法之后立刻调用.restore(options)方法。
  • .options.reset():重置默认的参数。 Effectively the same as calling .options({}) while preserving the appendTo option.
  • .emitValues():Emits all of the data events listed below. Mostly used internally, should be avoided in consumer-land.
  • .setValue(value):使用value来设置当前的日期时间。 Takes string, Date, or moment. Mostly used internally, and it doesn't emit any events.
  • .refresh():强制刷新日期时间选择器。This method will redraw the month and update the dates that can be selected in accordance with dateValidator and timeValidator.

 事件

Rome日期时间选择器也提供了一些可用的事件。这些事件是通过一个事件源contra发布创建使用。

事件 参数 描述
ready [options] 日期时间选择器已经被.restore
destroyed [] 日期时间选择器已经被.destroy
data [value] 可能被日期时间选择器更新的日期。值由.getDateString()提供。
year [year] 可能被日期时间选择器更新的年份。值由moment.year()提供。
month [month] 可能被日期时间选择器更新的月份。值由moment.month()提供。
day [day] 可能被日期时间选择器更新的天数。值由moment.date()提供。
time [time] 可能被日期时间选择器更新的时间。值由时间字符串提供。
show [] 日期时间选择器已经被显示。
hide [] 日期时间选择器已经被隐藏。

标签:插件,js,rd,日期,options,时间,time,选择器
From: https://www.cnblogs.com/mybook000/p/18588913

相关文章

  • 使用printJs实现打印效果
    一、需求需要实现部分页面的内容打印;页面内容为表单,表单中还包括了表格。使用了 a-form、a-row、a-table 相关组件二、实现方法1、安装print-js npminstall--saveprint-js 2、给需要打印的部分设置一个id例如:我需要打印的是一整个表单内容,就再form表单上面设置id(此i......
  • 【WEB开发.js】HTTP请求和相应报文的头字段:Content-Type (巨巨巨巨详细好懂的举例详解)
    Content-Type是HTTP请求和响应报文中的头字段之一,用于指定发送的数据类型(MIME类型)。它告诉服务器或客户端数据的格式,方便接收方正确解析和处理内容。例如,在发送JSON数据时,会指定Content-Type:application/json;而发送HTML页面时,则会指定Content-Type:text/html。......
  • 求助——AssertionError: Attribute pipeline is missing from configuration.json.
    我在本地运行Sunsimiao大模型的时候遇到了“AssertionError:Attributepipelineismissingfromconfiguration.json.”的问题。在网上找了很多问题都没有解决,求助一下广大网友。有什么好的解决方法吗?本地环境如上所示,不知是哪里出现了问题!!!!......
  • Nuxt.js 应用中的 beforeResponse 事件钩子
    title:Nuxt.js应用中的beforeResponse事件钩子date:2024/12/5updated:2024/12/5author:cmdragonexcerpt:在Web开发中,处理响应是一个至关重要的环节。Nuxt.js提供的beforeResponse钩子允许开发者在发送响应之前对结果进行修改或处理。这一机制非常有助于确保返......
  • vs2012 cmake dll工程 调试dll launch.vs.json 附加到进程
    在VisualStudio中,当你有一个DLL项目并且想要附加调试这个DLL时,你需要指定宿主应用程序(在这个例子中是bt.exe),因为DLL本身不是独立可执行的。以下是如何配置launch.vs.json文件以便附加到bt.exe并调试limit-ml-model.dll的步骤:确定宿主应用程序(bt.exe)的路径:你需要知道bt.exe的......
  • node.js毕设基于微信小程序的同城快运系统小程序端程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于同城快运系统的研究,现有研究主要以传统的物流管理系统为主,专门针对基于微信小程序的同城快运系统的研究较少。在国内外,物流行业发展迅速,同城快递的......
  • node.js毕设勤工助学管理系统 程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于勤工助学管理系统的研究,现有研究主要集中在高校管理系统的一般性研究上,专门针对勤工助学管理系统的研究较少。在国内外,高校管理系统的发展已经较为......
  • RTSP播放器EasyPlayer.js报错The play() request was interrupted because video-only
    随着技术的发展,越来越多的H5流媒体播放器开始支持H.265编码格式。例如,EasyPlayer.jsH5播放器能够支持H.264、H.265等多种音视频编码格式,这使得播放器能够适应不同的视频内容和网络环境。那么为什么会出现Theplay()requestwasinterruptedbecausevideo-onlybackgroundmed......
  • 如何使用js去调用vscode-js-debugger的方法去调试网页?
    ......
  • Qt - Json数据解析
     json数据格式:{"name":"Alice","age":30,"isStudent":false,"courses":[{"courseName":"Mathematics","credits":3,"ins......