UNPKG

1.62 kBJavaScriptView Raw
1function endsWith(string, suffix) {
2 return string.indexOf(suffix, string.length - suffix.length) !== -1;
3}
4
5
6export default {
7 name: 'vue-dotnet-validator-group',
8 props: {
9 onValid: {
10 type: Function,
11 default: null
12 }
13 },
14 data() {
15 return {
16 validators: [],
17 loading: false,
18 isValidatorGroup: true,
19 }
20 },
21 methods: {
22 validate(event) {
23 let valid = true;
24 this.validators.forEach(validator => {
25 validator.hasForced = true;
26 if(!validator.isValid) {
27 valid = false;
28 event.preventDefault();
29 validator.showValidationMessage(true);
30 validator.blurField(); // Force showing validation.
31 }
32 });
33 if(valid && this.onValid instanceof Function) {
34 event.preventDefault();
35 return this.onValid(event);
36 }
37
38 this.loading = valid;
39 return valid;
40 },
41 findValidatorsByName(name) {
42 // Normalize string, in some cases the name contains a * or a ., like in equal-to validation.
43 name = name.replace(/\*/g, '').replace(/\./g, '');
44 return this.validators.filter(validator => endsWith(validator.name, name));
45 },
46 addValidator(validator) {
47 this.validators.push(validator);
48 },
49 removeValidator(validator) {
50 this.validators.splice(this.validators.indexOf(validator), 1);
51 }
52 }
53};