-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathmultiple-checkboxes.html
137 lines (133 loc) · 6.67 KB
/
multiple-checkboxes.html
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<!DOCTYPE html>
<html lang="en">
<head>
<title>Message plugin - FormValidation</title>
<meta charset="utf-8" />
<meta content="width=device-width,initial-scale=1" name="viewport" />
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
/>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.min.css"
/>
<link rel="stylesheet" href="/vendors/@form-validation/umd/styles/index.min.css" />
</head>
<body>
<div class="container">
<form id="demoForm" method="POST">
<div class="form-group row">
<label class="col-sm-3 col-form-label">Event name</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="name" />
</div>
</div>
<div class="form-group row">
<label class="col-sm-3 col-form-label">Alert on</label>
<div class="col-sm-9">
<div class="row js-alert-field-container">
<div class="col-sm-6">
<div class="form-check">
<input type="checkbox" class="form-check-input" name="alertDay" value="0" />
<label class="form-check-label">On event day</label>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" name="alertDay" value="1" />
<label class="form-check-label">1 day before</label>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" name="alertDay" value="2" />
<label class="form-check-label">2 days before</label>
</div>
</div>
<div class="col-sm-6">
<div class="form-check">
<input type="checkbox" class="form-check-input" name="alertDay" value="3" />
<label class="form-check-label">3 days before</label>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" name="alertDay" value="7" />
<label class="form-check-label">1 week before</label>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" name="alertDay" value="14" />
<label class="form-check-label">2 weeks before</label>
</div>
</div>
<div id="alertDayIcon"></div>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-9 offset-sm-3">
<!-- The container to place the error of checkboxes -->
<div id="alertDayMessage"></div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-9 offset-sm-3">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
</div>
<script src="/vendors/@form-validation/umd/bundle/popular.min.js"></script>
<script src="/vendors/@form-validation/umd/plugin-bootstrap/index.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function (e) {
const demoForm = document.getElementById('demoForm');
FormValidation.formValidation(demoForm, {
fields: {
name: {
validators: {
notEmpty: {
message: 'The event name is required',
},
},
},
alertDay: {
validators: {
notEmpty: {
message: 'Please choose at least one checkbox',
},
},
},
},
plugins: {
trigger: new FormValidation.plugins.Trigger(),
bootstrap: new FormValidation.plugins.Bootstrap({
defaultMessageContainer: false,
rowSelector: function (field, ele) {
return field === 'alertDay' ? '.js-alert-field-container' : '.form-group';
},
}),
submitButton: new FormValidation.plugins.SubmitButton(),
icon: new FormValidation.plugins.Icon({
valid: 'fa fa-check',
invalid: 'fa fa-times',
validating: 'fa fa-refresh',
onPlaced: function (e) {
if (e.field === 'alertDay') {
document.getElementById('alertDayIcon').appendChild(e.iconElement);
}
},
}),
message: new FormValidation.plugins.Message({
clazz: 'fv-help-block',
container: function (field, ele) {
return field === 'alertDay'
? document.getElementById('alertDayMessage')
: FormValidation.plugins.Message.getClosestContainer(
ele,
demoForm,
/^(.*)(col|offset)-(xs|sm|md|lg)-[0-9]+(.*)$/
);
},
}),
},
});
});
</script>
</body>
</html>