1
+ <!DOCTYPE html>
2
+ < html lang ="en ">
3
+ < head >
4
+ < meta charset ="UTF-8 ">
5
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
6
+ < title > Happy.js by Henrikjoreteg</ title >
7
+ < meta name ="description " content ="$('form').isHappy() – Lightweight, extensible form validation plugin for jQuery/Zepto.js ">
8
+ < meta name ="author " content ="HenrikJoreteg ">
9
+ < meta name ="robots " content ="index, follow ">
10
+ <!-- Canonical URL -->
11
+ < link rel ="canonical " href ="https://codehimblog.github.io/jquery-plugins/happy-js-by-henrikjoreteg.html ">
12
+ <!-- Favicon -->
13
+ < link rel ="icon " href ="/favicon.ico " type ="image/png ">
14
+ <!-- Bootstrap CSS -->
15
+ < link href ="
https://cdn.jsdelivr.net/npm/[email protected] /dist/css/bootstrap.min.css "
rel ="
stylesheet "
>
16
+ <!-- Bootstrap Icons -->
17
+ < link href ="https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.css " rel ="stylesheet ">
18
+ < link rel ="stylesheet " href ="/css/styles.css ">
19
+ </ head >
20
+ < body >
21
+ <!-- Navbar -->
22
+ < nav class ="navbar navbar-expand-lg navbar-dark bg-dark fixed-top ">
23
+ < div class ="container ">
24
+ < a class ="navbar-brand " href ="https://codehimblog.github.io ">
25
+ < i class ="bi bi-box-seam me-2 "> </ i > CodehimBlog
26
+ </ a >
27
+ < button class ="navbar-toggler " type ="button " data-bs-toggle ="collapse " data-bs-target ="#navbarNav " aria-controls ="navbarNav " aria-expanded ="false " aria-label ="Toggle navigation ">
28
+ < span class ="navbar-toggler-icon "> </ span >
29
+ </ button >
30
+ < div class ="collapse navbar-collapse " id ="navbarNav ">
31
+ < ul class ="navbar-nav ms-auto ">
32
+ < li class ="nav-item ">
33
+ < a class ="nav-link " href ="https://codehimblog.github.io/ "> < i class ="bi bi-house-door me-1 "> </ i > Home</ a >
34
+ </ li >
35
+ < li class ="nav-item ">
36
+ < a class ="nav-link " href ="https://codehimblog.github.io/projects/ "> < i class ="bi bi-box me-1 "> </ i > Projects</ a >
37
+ </ li >
38
+ < li class ="nav-item ">
39
+ < a class ="nav-link " href ="https://codehimblog.github.io/about.html "> < i class ="bi bi-book me-1 "> </ i > About</ a >
40
+ </ li >
41
+ < li class ="nav-item ">
42
+ < a class ="nav-link " href ="https://codehimblog.github.io/contact.html "> < i class ="bi bi-envelope me-1 "> </ i > Contact</ a >
43
+ </ li >
44
+ </ ul >
45
+ </ div >
46
+ </ div >
47
+ </ nav >
48
+
49
+ <!-- Breadcrumbs -->
50
+ < div class ="container mt-4 breadcrumbs ">
51
+ < nav aria-label ="breadcrumb ">
52
+ < ol class ="breadcrumb mb-0 ">
53
+ < li class ="breadcrumb-item "> < a href ="https://codehimblog.github.io/ "> Home</ a > </ li >
54
+ < li class ="breadcrumb-item "> < a href ="https://codehimblog.github.io/jquery-plugins/ "> jQuery Plugins</ a > </ li >
55
+ < li class ="breadcrumb-item active " aria-current ="page "> Happy.js</ li >
56
+ </ ol >
57
+ </ nav >
58
+ </ div >
59
+
60
+ <!-- Schema Markup for Breadcrumbs -->
61
+ < script type ="application/ld+json ">
62
+ {
63
+ "@context" : "https://schema.org" ,
64
+ "@type" : "BreadcrumbList" ,
65
+ "itemListElement" : [
66
+ {
67
+ "@type" : "ListItem" ,
68
+ "position" : 1 ,
69
+ "name" : "Home" ,
70
+ "item" : "https://codehimblog.github.io/"
71
+ } ,
72
+ {
73
+ "@type" : "ListItem" ,
74
+ "position" : 2 ,
75
+ "name" : "jQuery Plugins" ,
76
+ "item" : "https://codehimblog.github.io/jquery-plugins/"
77
+ } ,
78
+ {
79
+ "@type" : "ListItem" ,
80
+ "position" : 3 ,
81
+ "name" : "Happy.js" ,
82
+ "item" : "https://codehimblog.github.io/projects/{{packageSlug}}"
83
+ }
84
+ ]
85
+ }
86
+ </ script >
87
+ <!-- Main Content -->
88
+ < div class ="container mt-3 ">
89
+ < div class ="row ">
90
+ <!-- Main Details -->
91
+ < main class ="col-md-8 site-main p-0 ">
92
+ < article >
93
+ <!-- Project Name & Description -->
94
+ < h1 id ="packageName "> Happy.js</ h1 >
95
+ < p id ="packageDescription " class ="text-muted "> $('form').isHappy() – Lightweight, extensible form validation plugin for jQuery/Zepto.js</ p >
96
+
97
+
98
+
99
+ <!-- Statistics -->
100
+ < div class ="stat-row d-flex justify-content-around align-items-center text-center mb-2 ">
101
+ < div class ="stat-box d-flex align-items-center flex-column-mobile ">
102
+ < i class ="bi bi-star-fill text-warning mb-2 "> </ i >
103
+ < div >
104
+ < span id ="stargazersCount " class ="stat-value "> 411</ span >
105
+ < p class ="stat-label mb-0 "> Stars</ p >
106
+ </ div >
107
+ </ div >
108
+
109
+ < div class ="stat-box d-flex align-items-center flex-column-mobile ">
110
+ < i class ="bi bi-box-arrow-in-down mb-2 "> </ i >
111
+ < div >
112
+ < span id ="repoSize " class ="stat-value "> 0.23 MB</ span >
113
+ < p class ="stat-label mb-0 "> Size</ p >
114
+ </ div >
115
+ </ div >
116
+
117
+ < div class ="stat-box d-flex align-items-center flex-column-mobile ">
118
+ < i class ="bi bi-arrow-repeat text-secondary mb-2 "> </ i >
119
+ < div >
120
+ < span id ="forksCount " class ="stat-value "> 123</ span >
121
+ < p class ="stat-label mb-0 "> Forks</ p >
122
+ </ div >
123
+ </ div >
124
+
125
+ < div class ="stat-box d-flex align-items-center flex-column-mobile ">
126
+ < i class ="bi bi-exclamation-circle text-danger mb-2 "> </ i >
127
+ < div >
128
+ < span id ="openIssuesCount " class ="stat-value "> 19</ span >
129
+ < p class ="stat-label mb-0 "> Open Issues</ p >
130
+ </ div >
131
+ </ div >
132
+ </ div >
133
+
134
+
135
+ < div class ="ad-unit ad-apt ">
136
+ < script async src ="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7089100907045419 "
137
+ crossorigin ="anonymous "> </ script >
138
+ <!-- CodehimBlog APT -->
139
+ < ins class ="adsbygoogle "
140
+ style ="display:block "
141
+ data-ad-client ="ca-pub-7089100907045419 "
142
+ data-ad-slot ="4990741913 "
143
+ data-ad-format ="auto "
144
+ data-full-width-responsive ="true "> </ ins >
145
+ < script >
146
+ ( adsbygoogle = window . adsbygoogle || [ ] ) . push ( { } ) ;
147
+ </ script >
148
+ </ div >
149
+
150
+ < div class ="row mb-4 ">
151
+ <!-- Tabs (Left) -->
152
+ < div class ="col-12 col-md-6 d-flex justify-content-start mb-3 mb-md-0 ">
153
+ < ul class ="nav nav-tabs " id ="infoTabs " role ="tablist ">
154
+ < li class ="nav-item " role ="presentation ">
155
+ < button class ="nav-link active " id ="installation-tab " data-bs-toggle ="tab " data-bs-target ="#installation " type ="button " role ="tab " aria-controls ="installation " aria-selected ="true ">
156
+ < i class ="bi bi-file-earmark-text "> </ i > Readme
157
+ </ button >
158
+ </ li >
159
+ < li class ="nav-item " role ="presentation ">
160
+ < button class ="nav-link " id ="changelog-tab " data-bs-toggle ="tab " data-bs-target ="#changelog " type ="button " role ="tab " aria-controls ="changelog " aria-selected ="false ">
161
+ < i class ="bi bi-journal-text me-2 "> </ i > Changelog
162
+ </ button >
163
+ </ li >
164
+ </ ul >
165
+ </ div >
166
+
167
+ <!-- Action Buttons (Right) -->
168
+ < div class ="col-12 col-md-6 d-flex align-items-center justify-content-end ">
169
+ < a href ="https://github.com/HenrikJoreteg/Happy.js/archive/refs/heads/master.zip " class ="btn btn-primary me-2 action-btn " id ="downloadBtn ">
170
+ < i class ="bi bi-cloud-download me-2 "> </ i > Download ZIP
171
+ </ a >
172
+ < a href ="https://github.com/HenrikJoreteg/Happy.js " target ="_blank " class ="btn btn-outline-secondary action-btn " id ="githubBtn ">
173
+ < i class ="bi bi-github me-2 "> </ i > Fork on GitHub
174
+ </ a >
175
+ </ div >
176
+ </ div >
177
+ < div class ="tab-content mt-3 " id ="infoTabsContent ">
178
+ < div class ="tab-pane fade show active " id ="installation " role ="tabpanel " aria-labelledby ="installation-tab ">
179
+ < h1 > Happy.js – are your forms happy? Just ask 'em!</ h1 >
180
+ < p > < a href ="http://projects.joreteg.com/Happy.js/ "> http://projects.joreteg.com/Happy.js/</ a > | < a href ="http://projects.joreteg.com/Happy.js/demo.html "> Demo</ a > </ p >
181
+ </ div >
182
+
183
+ < div class ="tab-pane fade " id ="changelog " role ="tabpanel " aria-labelledby ="changelog-tab ">
184
+ < ul id ="changelogList ">
185
+ No changelog available.
186
+ </ ul >
187
+ </ div >
188
+
189
+ </ div >
190
+
191
+ < div class ="tags mb-2 mt-2 ">
192
+
193
+ </ div >
194
+
195
+ </ article >
196
+
197
+
198
+ </ main >
199
+ <!-- Sidebar -->
200
+ < aside class ="col-md-4 p-0 ">
201
+ < div class ="sidebar ">
202
+ <!-- Owner Section -->
203
+ < div class ="sidebar-item mb-4 ">
204
+ < div class ="ad-unit ">
205
+ < script async src ="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7089100907045419 "
206
+ crossorigin ="anonymous "> </ script >
207
+ <!-- CodehimBlog Sidebar -->
208
+ < ins class ="adsbygoogle "
209
+ style ="display:block "
210
+ data-ad-client ="ca-pub-7089100907045419 "
211
+ data-ad-slot ="8929986923 "
212
+ data-ad-format ="auto "
213
+ data-full-width-responsive ="true "> </ ins >
214
+ < script >
215
+ ( adsbygoogle = window . adsbygoogle || [ ] ) . push ( { } ) ;
216
+ </ script >
217
+ </ div >
218
+ < div class ="d-flex align-items-center ">
219
+ < img src ="https://avatars.githubusercontent.com/u/67925?v=4 " alt ="Owner Avatar " class ="rounded-circle me-2 owner-avatar ">
220
+ < a href ="https://github.com/HenrikJoreteg " target ="_blank " id ="ownerName " class ="sidebar-link "> HenrikJoreteg</ a >
221
+ </ div >
222
+ </ div >
223
+
224
+ <!-- Metadata Section -->
225
+ < div class ="sidebar-item mb-2 ">
226
+ < div class ="metadata-item d-flex align-items-center ">
227
+ < i class ="bi bi-calendar me-2 "> </ i >
228
+ < strong > Created At:</ strong >
229
+ < span id ="createdAt " class ="ms-1 "> January 30, 2011</ span >
230
+ </ div >
231
+ < div class ="metadata-item d-flex align-items-center mt-2 ">
232
+ < i class ="bi bi-pencil-square me-2 "> </ i >
233
+ < strong > Last Updated:</ strong >
234
+ < span id ="updatedAt " class ="ms-1 "> November 10, 2024</ span >
235
+ </ div >
236
+ < div class ="metadata-item d-flex align-items-center mt-2 ">
237
+ < i class ="bi bi-file-earmark-code me-2 "> </ i >
238
+ < strong > Language:</ strong >
239
+ < span id ="language " class ="ms-1 "> JavaScript</ span >
240
+ </ div >
241
+
242
+ < div class ="metadata-item d-flex align-items-center mt-2 ">
243
+ < i class ="bi bi-shield-check "> </ i >
244
+ < strong > License:</ strong >
245
+ < span id ="license " class ="ms-1 "> MIT License</ span >
246
+ </ div >
247
+ < a href ="http://projects.joreteg.com/Happy.js/ " target ="_blank " class ="btn btn-outline-dark btn-sm " id ="homepageBtn ">
248
+ < i class ="bi bi-house-door me-2 "> </ i > Visit Homepage
249
+ </ a >
250
+
251
+ </ div >
252
+
253
+ < div class ="sidebar-item mb-2 ">
254
+ < li > No dependencies!</ li >
255
+ </ div >
256
+
257
+ < div class ="sidebar-item ">
258
+ < h5 class ="sidebar-title "> Contributors</ h5 >
259
+ < ul class ="p-0 " id ="contributorsList ">
260
+ < ul class ="list-group list-group-flush " id ="contributorsList "> < li class ="list-group-item d-flex align-items-center contributor-item "> < img src ="https://avatars.githubusercontent.com/u/67925?v=4 " alt ="HenrikJoreteg " class ="rounded-circle me-3 " style ="width: 40px; height: 40px; "> < div > < a href ="https://github.com/HenrikJoreteg " target ="_blank " class ="text-decoration-none fw-bold "> HenrikJoreteg</ a > < p class ="mb-0 text-muted small "> 22 contributions</ p > </ div > </ li > < li class ="list-group-item d-flex align-items-center contributor-item "> < img src ="https://avatars.githubusercontent.com/u/148930?v=4 " alt ="alexblack " class ="rounded-circle me-3 " style ="width: 40px; height: 40px; "> < div > < a href ="https://github.com/alexblack " target ="_blank " class ="text-decoration-none fw-bold "> alexblack</ a > < p class ="mb-0 text-muted small "> 5 contributions</ p > </ div > </ li > < li class ="list-group-item d-flex align-items-center contributor-item "> < img src ="https://avatars.githubusercontent.com/u/3011873?v=4 " alt ="btpoe " class ="rounded-circle me-3 " style ="width: 40px; height: 40px; "> < div > < a href ="https://github.com/btpoe " target ="_blank " class ="text-decoration-none fw-bold "> btpoe</ a > < p class ="mb-0 text-muted small "> 3 contributions</ p > </ div > </ li > < li class ="list-group-item d-flex align-items-center contributor-item "> < img src ="https://avatars.githubusercontent.com/u/2191786?v=4 " alt ="MarnuLombard " class ="rounded-circle me-3 " style ="width: 40px; height: 40px; "> < div > < a href ="https://github.com/MarnuLombard " target ="_blank " class ="text-decoration-none fw-bold "> MarnuLombard</ a > < p class ="mb-0 text-muted small "> 2 contributions</ p > </ div > </ li > < li class ="list-group-item d-flex align-items-center contributor-item "> < img src ="https://avatars.githubusercontent.com/u/5109188?v=4 " alt ="smilli " class ="rounded-circle me-3 " style ="width: 40px; height: 40px; "> < div > < a href ="https://github.com/smilli " target ="_blank " class ="text-decoration-none fw-bold "> smilli</ a > < p class ="mb-0 text-muted small "> 2 contributions</ p > </ div > </ li > < li class ="list-group-item d-flex align-items-center contributor-item d-none "> < img src ="https://avatars.githubusercontent.com/u/89450?v=4 " alt ="fgnass " class ="rounded-circle me-3 " style ="width: 40px; height: 40px; "> < div > < a href ="https://github.com/fgnass " target ="_blank " class ="text-decoration-none fw-bold "> fgnass</ a > < p class ="mb-0 text-muted small "> 1 contributions</ p > </ div > </ li > < li class ="list-group-item d-flex align-items-center contributor-item d-none "> < img src ="https://avatars.githubusercontent.com/u/3905501?v=4 " alt ="bryant1410 " class ="rounded-circle me-3 " style ="width: 40px; height: 40px; "> < div > < a href ="https://github.com/bryant1410 " target ="_blank " class ="text-decoration-none fw-bold "> bryant1410</ a > < p class ="mb-0 text-muted small "> 1 contributions</ p > </ div > </ li > < li class ="list-group-item d-flex align-items-center contributor-item d-none "> < img src ="https://avatars.githubusercontent.com/u/103820?v=4 " alt ="gilluminate " class ="rounded-circle me-3 " style ="width: 40px; height: 40px; "> < div > < a href ="https://github.com/gilluminate " target ="_blank " class ="text-decoration-none fw-bold "> gilluminate</ a > < p class ="mb-0 text-muted small "> 1 contributions</ p > </ div > </ li > < li class ="list-group-item d-flex align-items-center contributor-item d-none "> < img src ="https://avatars.githubusercontent.com/u/2227061?v=4 " alt ="mhollauf " class ="rounded-circle me-3 " style ="width: 40px; height: 40px; "> < div > < a href ="https://github.com/mhollauf " target ="_blank " class ="text-decoration-none fw-bold "> mhollauf</ a > < p class ="mb-0 text-muted small "> 1 contributions</ p > </ div > </ li > < li class ="list-group-item text-center "> < a href ="# " id ="toggleContributors " class ="d-block "> +4 more Contributors</ a > </ li > </ ul >
261
+ </ ul >
262
+
263
+ </ div >
264
+
265
+ < div class ="ad-unit ">
266
+ < script async src ="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7089100907045419 "
267
+ crossorigin ="anonymous "> </ script >
268
+ <!-- CodehimBlog Skyscrapper -->
269
+ < ins class ="adsbygoogle "
270
+ style ="display:block "
271
+ data-ad-client ="ca-pub-7089100907045419 "
272
+ data-ad-slot ="7469565592 "
273
+ data-ad-format ="auto "
274
+ data-full-width-responsive ="true "> </ ins >
275
+ < script >
276
+ ( adsbygoogle = window . adsbygoogle || [ ] ) . push ( { } ) ;
277
+ </ script >
278
+ </ div >
279
+
280
+ </ div >
281
+ </ aside >
282
+ </ div >
283
+ </ div >
284
+ <!-- Footer -->
285
+ < footer class ="bg-dark text-white text-center py-3 page-footer ">
286
+ < div class ="container ">
287
+ < p class ="mb-2 "> © 2024 CodehimBlog - Powered by GitHub</ p >
288
+ < nav >
289
+ < ul class ="list-inline mb-0 ">
290
+ < li class ="list-inline-item ">
291
+ < a href ="/privacy-policy.html " class ="footer-link "> Privacy Policy</ a >
292
+ </ li >
293
+ < li class ="list-inline-item ">
294
+ < span class ="text-white "> |</ span >
295
+ </ li >
296
+ < li class ="list-inline-item ">
297
+ < a href ="/terms-and-conditions.html " class ="footer-link "> Terms and Conditions</ a >
298
+ </ li >
299
+ </ ul >
300
+ </ nav >
301
+ </ div >
302
+ </ footer >
303
+ <!-- Bootstrap Bundle JS -->
304
+ < script src ="
https://cdn.jsdelivr.net/npm/[email protected] /dist/js/bootstrap.bundle.min.js "
> </ script >
305
+ < script src ="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js "> </ script >
306
+ < script src ="/js/script.js "> </ script >
307
+ <!-- Google tag (gtag.js) -->
308
+ < script async src ="https://www.googletagmanager.com/gtag/js?id=G-FG2ZX76XGT "> </ script >
309
+ < script >
310
+ window . dataLayer = window . dataLayer || [ ] ;
311
+ function gtag ( ) { dataLayer . push ( arguments ) ; }
312
+ gtag ( 'js' , new Date ( ) ) ;
313
+
314
+ gtag ( 'config' , 'G-FG2ZX76XGT' ) ;
315
+ </ script >
316
+ </ body >
317
+ </ html >
0 commit comments