parent
d3103d2616
commit
34898a8bd1
File diff suppressed because one or more lines are too long
@ -1,4 +0,0 @@
|
||||
/******/ (() => { // webpackBootstrap
|
||||
/******/ "use strict";
|
||||
/******/ })()
|
||||
;
|
@ -1,92 +0,0 @@
|
||||
import validate from 'validate.js'
|
||||
import serialize from 'form-serialize'
|
||||
|
||||
/**
|
||||
* Validate entire Form or a single Element
|
||||
*
|
||||
* Using validator.js
|
||||
*
|
||||
* @author Björn Hase, Tentakelfabrik, me@tentakelfabrik.de
|
||||
*
|
||||
*/
|
||||
class Validator {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {array} rules
|
||||
*/
|
||||
constructor(rules, component) {
|
||||
this._rules = rules
|
||||
this._component = component
|
||||
|
||||
this._errors = {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* handle validation
|
||||
*
|
||||
* if key not set,
|
||||
*
|
||||
* @param {object} event
|
||||
* @param {object} key
|
||||
*
|
||||
*/
|
||||
handle(event, key) {
|
||||
|
||||
event.preventDefault()
|
||||
|
||||
let data = null, rules, errors
|
||||
|
||||
if (key) {
|
||||
if (event.target.value) {
|
||||
data = event.target.value
|
||||
}
|
||||
} else {
|
||||
data = serialize(event.target, {
|
||||
hash: true
|
||||
})
|
||||
}
|
||||
|
||||
// validate single
|
||||
if (key) {
|
||||
rules = this._rules[key]
|
||||
|
||||
errors = validate.single(data, rules, {
|
||||
flat: true
|
||||
})
|
||||
|
||||
if (errors) {
|
||||
this._errors[key] = errors
|
||||
} else {
|
||||
delete this._errors[key]
|
||||
}
|
||||
|
||||
// validate entire form
|
||||
} else {
|
||||
this._errors = validate(data, this._rules)
|
||||
}
|
||||
|
||||
// update component
|
||||
this._component.update()
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @param {[type]} key
|
||||
* @return {[type]}
|
||||
*/
|
||||
errors(key) {
|
||||
|
||||
if (key) {
|
||||
return this._errors[key]
|
||||
}
|
||||
|
||||
return this._errors
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
export default Validator
|
Loading…
Reference in new issue