• 技术文章 >web前端 >js教程

    datepicker插件监听输入框

    php中世界最好的语言php中世界最好的语言2018-03-23 13:25:39原创1117
    这次给大家带来datepicker插件监听输入框,datepicker插件监听输入框的注意事项有哪些,下面就是实战案例,一起来看一下。

    一、背景

    在Vue项目中使用了第三方的datepicker插件,在选择日期后vue无法检测到datepicker输入框的变化

     <label class="fl">日期:</label>
     <p class="input-wrapper fr">
      <input class="daterangepicker" ref="datepicker" v-model="dateRange"/>
      <a href="javascript:;" rel="external nofollow" ></a>
     </p>
    export default {
      data() {
        return {
          dateRange: ''
        }
      },
      watch: {
        dateRange(newVal, oldVal) {
          console.log(newVal) // 选择日期后无法监听dateRange的改变
        }
      }
    }

    二、分析

    查找资料发现:Vue实际上无法监听由第三方插件所引起的数据变化。因此上面的方法是行不通的。但是,Vue给我们提供的一个方法,它可以将任意数据转化为可以被Vue监听到的数据,他就是:vm.$set。

    三、解决

    以我用到的datepicker为例(jquery-daterangepicker)

    data() {
        return {
          date: '',
          beginDate: '',
          endDate: ''
        }
      },
    mounted () {
      $('.daterangepicker').dateRangePicker({
        autoClose: true,
        format: 'YYYY-MM-DD'
      }).bind('datepicker-change', this.setDate) //插件自带方法,选择日期后触发回调
     },
    methods: {
      setDate() {
        let datepicker = this.$refs.datepicker
        //这一步是关键,具体说明可以参见vue api手册
        this.$set(this.date, 'beginDate', datepicker.value)
        this.$set(this.date, 'endDate', datepicker.value)
        this.beginDate = this.date.beginDate.slice(0, 11)
        this.endDate = this.date.endDate.slice(-10)
      }  
     },
      watch: {
      // 这里就可以监听数据变化啦,可以愉快的选择日期了!
       beginDate(newVal, oldVal) {
         this.$emit( 'beginDateChange', newVal )
       },
       endDate(newVal, oldVal) {
         this.$emit( 'endDateChange', newVal )
       }
      }

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    JS获取图片的top N色值方法

    使用render方法的图文详解

    以上就是datepicker插件监听输入框的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:datepicker 输入 插件
    上一篇:mixin的高阶组件使用详解 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一文详解Node中的模块化、文件系统与环境变量• 为什么要用debugger来调试代码?这样你能读懂各种源码!• 一文探究Angular中的服务端渲染(SSR)• 深入浅析Node中的进程和线程• 一文聊聊Node包管理发展的五个阶段
    1/1

    PHP中文网