Skip to content
This repository was archived by the owner on Dec 25, 2017. It is now read-only.

Commit af91d57

Browse files
committed
🐛 bug(errors): fix cannot apply validation classes
Fixes #239
1 parent 33c71d1 commit af91d57

File tree

2 files changed

+26
-10
lines changed

2 files changed

+26
-10
lines changed

src/validator.js

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -272,10 +272,10 @@ export default class Validator {
272272
}
273273

274274
_setValidationErrors (errors) {
275-
const extend = util.Vue.util.extend
275+
const { extend } = util.Vue.util
276276

277277
// make tempolaly errors
278-
let temp = {}
278+
const temp = {}
279279
each(errors, (error, index) => {
280280
if (!temp[error.field]) {
281281
temp[error.field] = []
@@ -285,18 +285,24 @@ export default class Validator {
285285

286286
// set errors
287287
each(temp, (values, field) => {
288-
let validation = this._scope[field]
289-
let newValidation = {}
288+
const results = this._scope[field]
289+
const newResults = {}
290+
290291
each(values, (error) => {
291292
if (error.validator) {
292-
validation[error.validator] = error.message
293+
results[error.validator] = error.message
293294
}
294295
})
295-
validation.valid = false
296-
validation.invalid = true
297-
validation.errors = values
298-
extend(newValidation, validation)
299-
util.Vue.set(this._scope, field, newValidation)
296+
297+
results.valid = false
298+
results.invalid = true
299+
results.errors = values
300+
extend(newResults, results)
301+
302+
const validation = this._getValidationFrom(field)
303+
validation.willUpdateClasses(newResults, validation.el)
304+
305+
util.Vue.set(this._scope, field, newResults)
300306
})
301307
}
302308

test/specs/errors.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import assert from 'power-assert'
22
import Vue from 'vue'
3+
import classes from 'component-classes'
34
import { each, empty, trigger } from '../../src/util'
45

56

@@ -252,6 +253,15 @@ describe('errors', () => {
252253
assert(!empty(vm.$validation.errors))
253254
assert(vm.$validation.group1.errors.length === 2)
254255
assert(empty(vm.$validation.group2.errors))
256+
each(['0', '4'], (val) => {
257+
const cls = classes(el.getElementsByTagName('input')[parseInt(val)])
258+
assert(!cls.has('valid'))
259+
assert(cls.has('invalid'))
260+
assert(cls.has('touched'))
261+
assert(!cls.has('untouched'))
262+
assert(cls.has('dirty'))
263+
assert(cls.has('modified'))
264+
})
255265
done()
256266
})
257267
})

0 commit comments

Comments
 (0)