首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vuelidate日期输入字段

Vuelidate日期输入字段
EN

Stack Overflow用户
提问于 2018-05-19 22:19:12
回答 1查看 9.7K关注 0票数 9

我希望有人能向我澄清,在验证Date对象时如何正确使用Vuelidate。我希望使用当前日期作为最小日期,因此如果用户稍后输入日期,则会显示一个错误。

我有一个例子:https://jsfiddle.net/cheslavcc/fns8eh0f/1/

代码语言:javascript
复制
Vue.use(window.vuelidate.default)
const { required, minValue } = window.validators

new Vue({
  el: "#app",
  data: {
    text: ''
  },
  validations: {
    text: {
        minValue: minValue(moment(new Date(), 'DD.MM.YYYY').format('DD.MM.YYYY')),
    }
  }
})

我使用Moment.js作为日期格式化程序,并使用Vuelidate官方文档中的minValue:https://monterail.github.io/vuelidate/#sub-builtin-validators

感谢您的帮助,非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-19 23:29:32

您可以定义自定义验证器:

代码语言:javascript
复制
Vue.use(window.vuelidate.default)
const { required, minValue } = window.validators

const currentDate = moment(new Date()).startOf('day')
const minDate = window.vuelidate.withParams({minDate: currentDate.format('DD.MM.YYYY')}, value => moment(value, 'DD.MM.YYYY', true).isSameOrAfter(currentDate))

new Vue({
	el: "#app",
  data: {
  	text: ''
  },
  validations: {
  	text: {
			minDate
    }
  }
})
代码语言:javascript
复制
input {
  border: 1px solid silver;
  border-radius: 4px;
  background: white;
  padding: 5px 10px;
}

.error {
  border-color: red;
  background: #FDD;
}

.error:focus {
  outline-color: #F99;
}

.valid {
  border-color: #5A5;
  background: #EFE;
}

.valid:focus {
  outline-color: #8E8;
}
代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>
<script src="https://unpkg.com/vuelidate/dist/validators.min.js"></script>
<script src="https://unpkg.com/vuelidate/dist/vuelidate.min.js"></script>
<div id="app">
  <input type="text" v-model="text"
    v-on:input="$v.text.$touch"
    v-bind:class="{error: $v.text.$error, valid: $v.text.$dirty && !$v.text.$invalid}"
  >
  <pre>{{ $v }}</pre>
  Text: {{ text }}
</div>

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50426266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档