`
侠骨留香
  • 浏览: 6908 次
  • 性别: Icon_minigender_1
  • 来自: 山东
社区版块
存档分类
最新评论

Vue.js中使用iView日期选择器并设置开始时间结束时间校验

    博客分类:
  • Vue
阅读更多
 废话不多说直接上代码,拷贝代码保存为 html 文件,用浏览器打开就可以看到效果。
 在线查看效果:https://run.iviewui.com/PmGsUW3P
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title>Vue.js中使用iView日期选择器并设置开始时间结束时间校验</title>
    <!-- import Vue.js -->
    <script src="https://vuejs.org/js/vue.min.js"></script>
    <!-- import stylesheet -->
    <link rel="stylesheet" href="https://unpkg.com/iview/dist/styles/iview.css">
    <!-- import iView -->
    <script src="https://unpkg.com/iview/dist/iview.min.js"></script>
</head>

<body>
    <div id="app">
        <template>
            <Row>
                <Col span="12"> 开始时间:
                <date-picker type="datetime" v-model="startTime" placeholder="请选择开始时间" :options="startTimeOption" @on-change="onStartTimeChange"></date-picker>
                </Col>
                <Col span="12"> 结束时间:
                <date-picker type="datetime" v-model="endTime" placeholder="请选择结束时间" :options="endTimeOption" @on-change="onEndTimeChange"></date-picker>
                </Col>
            </Row>
        </template>
    </div>

    <script>
        new Vue({
            el: '#app',
            data() {
                return {
                    startTime: '',
                    endTime: '',
                    startTimeOption: {},
                    endTimeOption: {}
                }
            },
            mounted() {
                this.startTime = '2018-08-08 00:00:00'
                this.endTime = '2018-08-11 23:59:59'
                this.onStartTimeChange(this.startTime)
                this.onEndTimeChange(this.endTime)
            },
            methods: {
                /**
                 * 开始时间发生变化时触发,设置结束时间不可选择的日期
                 * 结束时间应大于等于开始时间,且小于等于当前时间
                 * @param {string} startTime 格式化后的日期
                 * @param {string} type 当前的日期类型
                 */
                onStartTimeChange(startTime, type) {
                    this.endTimeOption = {
                        disabledDate(endTime) {
                            return endTime < new Date(startTime) || endTime > Date.now()
                        }
                    }
                },
                /**
                 * 结束时间发生变化时触发,设置开始时间不可选择的日期
                 * 开始时间小于等于结束时间,且小于等于当前时间
                 * @param {string} date 格式化后的日期
                 * @param {string} type 当前的日期类型
                 */
                onEndTimeChange(endTime, type) {
                    this.startTimeOption = {
                        disabledDate(startTime) {
                            return startTime > new Date(endTime) || startTime > Date.now()
                        }
                    }
                }
            }
        })
    </script>
</body>

</html>

 

 

分享到:
评论

相关推荐

    Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能

    在本文中,我们将深入探讨如何在Vue.js中利用iView的日期选择器来实现开始时间和结束时间的选择,并添加校验功能,确保结束时间始终大于或等于开始时间,同时不超过当前时间。 首先,为了引入Vue.js和iView,我们...

    iview中Select 选择器多选校验方法

    iView 中 Select 选择器多选校验方法 iView 是一个基于 Vue.js 的高质量 UI 组件库,它提供了许多实用的组件来帮助开发者快速构建应用程序。其中,Select 选择器是一个非常常用的组件,它可以帮助用户从多个选项中...

    日期控件dd

    描述中的"主要用于搜索设置开始时间不能大于结束时间"进一步强调了这个控件的一个关键功能,即确保用户设定的时间顺序逻辑正确,避免出现开始日期晚于结束日期的错误情况。 日期控件通常具备以下特性: 1. **用户...

    浅谈关于iview表单验证的问题

    在select选择器的场景中,iview默认将数据类型校验为字符串,如果使用number类型作为select的value值,就可能出现校验不通过的情况。解决方法是在验证规则中指定正确的类型,即在验证规则的trigger后明确指定type...

    iview form清除校验状态的实现

    在进行前端表单设计和开发时,经常需要对表单的校验状态进行管理。特别是在具有动态表单功能的应用...对于使用iview框架的前端开发者来说,这些知识点非常有价值,有助于在开发过程中更加灵活地处理表单校验相关问题。

    使用Vue动态生成form表单的实例代码

    FormCreate是一个基于Vue的动态form表单生成器,可以生成具有数据收集、校验和提交功能的表单,包含复选框、单选框、输入框、下拉选择框等元素,以及省市区三级联动、时间选择、日期选择、颜色选择、文件/图片上传...

    koa_vue_blog:koa+mysql+vue+iview 基于node前后端分离blog项目

    koa+mysql+vue+iview 前后端分离blog项目 作为前端开发者一直想应用开发出属于自己的应用程序,受制于后端的限制,使用nodejs 环境开发后端作为服务。 首先选择数据库Mysql ,它相对于MongoDB 更有学习价值虽然 ...

    Vue数据驱动表单渲染,轻松搞定form表单

    具有动态渲染、数据收集、校验和提交功能的表单生成器,支持双向数据绑定、事件扩展以及自定义组件,可快速生成包含有省市区三级联动、时间选择、日期选择等17种功能组件。 Github | 文档 form-create 是基于 Vue...

Global site tag (gtag.js) - Google Analytics