Vuelidate example
by WILLIAM CORREA
HTML
<script src="https://unpkg.com/vuelidate/dist/vuelidate.min.js"></script>
<script src="https://unpkg.com/vuelidate/dist/validators.min.js"></script>
<div id="app">
<input v-model="$v.text.$model" :class="status($v.text)">
<pre>{{ $v }}</pre>
</div>
CSS
input {
border: 1px solid silver;
border-radius: 4px;
background: white;
padding: 5px 10px;
}
.dirty {
border-color: #5A5;
background: #EFE;
}
.dirty:focus {
outline-color: #8E8;
}
.error {
border-color: red;
background: #FDD;
}
.error:focus {
outline-color: #F99;
}
Babel + JSX
Vue.use(window.vuelidate.default)
const { required, minLength, email } = window.validators
new Vue({
el: "#app",
data: {
text: ''
},
validations: {
text: {
required,
email,
minLength: minLength(5)
}
},
methods: {
status(validation) {
return {
error: validation.$error,
dirty: validation.$dirty
}
}
}
})