javascript - issue in disabling dates on datepicker -
i using vue-date-range
date picker. here using disabledstart
, disabledend
props not disabling date on view. disabling date required object. passing object doesn't work.i don't know correct object format disabling dates.
any appreciated plugin link https://www.npmjs.com/package/vue-date-range
here html
<div class="form-group form-group-lg"> <label>when required?</label> <daterange class="calendar" :sync-range.sync="range" :disable-days-before-today="disabledaysbeforetoday" :days-disabled-start="disablestart" :days-disabled-end="disableend" :lang="lang" @change="onchange"> </daterange> </div>
js
<script> import { daterange } 'vue-date-range'; export default { data() { return { lang: 'en', disabledaysbeforetoday: true, disablestart: { startdate:moment()}, disableend: { enddate: moment().add(7, 'days') }, range: {} } }, components: { 'daterange': daterange }, methods: { onchange(range) { console.log("start", range.startdate._d); console.log("end", range.enddate._d); }, disable() { console.log("on button click disable dates"); this.disablestart._d = new date('2017-08-25').tostring() } } } </script>
as phil pointed out, after looking source code of library, can confirm object used moment.js
's date object.
pass moment.js
's date object days-disabled-start
, days-disabled-end
.
see demo below.
new vue({ el: '#range', components: { 'daterange':daterange.daterange }, data() { return { lang: 'en', range: { startdate: moment(), enddate: moment().add(2, 'days') }, disablestart: moment().add(3, 'days'), disableend: moment().add(6, 'days') }; }, methods: { onchange(range) { this.range = range; }, setrange (p) { if (typeof p === 'number') { console.log(p) this.range = { startdate: moment().add(p, 'days'), enddate: moment() } } }, } });
<script src="https://cdn.bootcss.com/moment.js/2.17.1/moment.min.js"></script> <script src="https://unpkg.com/vue/dist/vue.min.js"></script> <script src="https://unpkg.com/vue-date-range@2.2.2/dist/vue-date-range.min.js"></script> <div id="range" class="calendar-wrapper"> <span>{{range.startdate.format('yyyy-mm-dd')}}</span>~<span>{{range.enddate.format('yyyy-mm-dd')}}</span> <daterange class="calendar" :sync-range="range" :lang="lang" :days-disabled-start="disablestart" :days-disabled-end="disableend" @change="onchange"> </daterange> <button @click.stop.prevent="setrange(-7)">last 7 days</button> <button @click.stop.prevent="setrange(-30)">last 1 month</button> </div>
Comments
Post a Comment