-
Notifications
You must be signed in to change notification settings - Fork 102
/
simple-form.bootstrap4.esm.js
53 lines (48 loc) · 1.91 KB
/
simple-form.bootstrap4.esm.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*!
* Client Side Validations Simple Form JS (Default) - v0.2.0 (https://github.com/DavyJonesLocker/client_side_validations-simple_form)
* Copyright (c) 2021 Geremia Taglialatela, Brian Cardarella
* Licensed under MIT (https://opensource.org/licenses/mit-license.php)
*/
import $ from 'jquery';
import ClientSideValidations from '@client-side-validations/client-side-validations';
ClientSideValidations.formBuilders['SimpleForm::FormBuilder'] = {
add: function add(element, settings, message) {
this.wrapper(settings.wrapper).add.call(this, element, settings, message);
},
remove: function remove(element, settings) {
this.wrapper(settings.wrapper).remove.call(this, element, settings);
},
wrapper: function wrapper(name) {
return this.wrappers[name] || this.wrappers["default"];
},
wrappers: {
"default": {
add: function add(element, settings, message) {
var wrapperElement = element.parent();
var errorElement = wrapperElement.find(settings.error_tag + '.invalid-feedback');
if (!errorElement.length) {
var formTextElement = wrapperElement.find('.form-text');
errorElement = $('<' + settings.error_tag + '>', {
"class": 'invalid-feedback',
text: message
});
if (formTextElement.length) {
formTextElement.before(errorElement);
} else {
wrapperElement.append(errorElement);
}
}
wrapperElement.addClass(settings.wrapper_error_class);
element.addClass('is-invalid');
errorElement.text(message);
},
remove: function remove(element, settings) {
var wrapperElement = element.parent();
var errorElement = wrapperElement.find(settings.error_tag + '.invalid-feedback');
wrapperElement.removeClass(settings.wrapper_error_class);
element.removeClass('is-invalid');
errorElement.remove();
}
}
}
};