PageSourceSearch

https://bandaran.desa.id/assets/js/validasi.js?vc31202b3edc6474cfd92b625bfa0f39a

js bandaran.desa.id collected 2026-10-03 18:46:00 UTC 11,835 bytes, 319 lines download raw bytes

1$(document).ready(function() {
2	$("#paging").validate();
3
4	// Untuk form surat memeriksa nomor surat secara remote/ajax
5	$("#validasi.form-surat").validate({
6		ignore: '#wrapper-mandiri input[name=nomor]',
7		errorElement: "label",
8		errorClass: "error",
9		highlight:function (element){
10			$(element).closest(".form-group").addClass("has-error");
11		},
12		unhighlight:function (element){
13			$(element).closest(".form-group").removeClass("has-error");
14		},
15		errorPlacement: function (error, element) {
16			if (element.parent('.input-group').length) {
17				error.insertAfter(element.parent());
18			} else if (element.hasClass('select2')) {
19				error.insertAfter(element.next('span'));
20			} else {
21				error.insertAfter(element);
22			}
23		},
24		// https://www.bladephp.co/jquery-validation-remote-codeigniter
25		rules: {
26			url_surat: {
27				required: true
28			},
29			nomor: {
30				required: true,
31				remote: {
32					url: $('#url_remote').val(),
33					type: "post",
34					data:{
35						url: function() {
36							return $('#url_surat').val()
37						}
38					}
39				}
40			}
41		},
42		messages: {
43			nomor: {
44				remote: "Nomor surat itu sudah digunakan",
45			},
46		},
47    success: function() {
48	    csrf_semua_form();
49    }
50	});
51
52	// Untuk form surat masuk/keluar memeriksa nomor urut secara remote/ajax
53	$("#validasi.nomor-urut").validate({
54		errorElement: "label",
55		errorClass: "error",
56		highlight:function (element){
57			$(element).closest(".form-group").addClass("has-error");
58		},
59		unhighlight:function (element){
60			$(element).closest(".form-group").removeClass("has-error");
61		},
62		errorPlacement: function (error, element) {
63			if (element.parent('.input-group').length) {
64				error.insertAfter(element.parent());
65			} else if (element.hasClass('select2')) {
66				error.insertAfter(element.next('span'));
67			} else {
68				error.insertAfter(element);
69			}
70		},
71		// https://www.bladephp.co/jquery-validation-remote-codeigniter
72		rules: {
73			nomor_urut: {
74				required: true,
75				remote: {
76					url: $('#url_remote').val(),
77					type: "post",
78					data:{
79						nomor_urut_lama: function() {
80							return $('#nomor_urut_lama').val()
81						}
82					}
83				}
84			}
85		},
86		messages: {
87			nomor_urut: {
88				remote: "Nomor urut itu sudah digunakan",
89			},
90		},
91		success: function() {
92			csrf_semua_form();
93		}
94	});
95
96	$("#validasi").validate({
97		ignore: ".ignore",
98		errorElement: "label",
99		errorClass: "error",
100		highlight:function (element){
101			$(element).closest(".form-group").addClass("has-error");
102		},
103		unhighlight:function (element){
104			$(element).closest(".form-group").removeClass("has-error");
105		},
106		errorPlacement: function (error, element) {
107			if (element.parent('.input-group').length) {
108				error.insertAfter(element.parent());
109				element.parent().focus();
110			} else if (element.hasClass('select2')) {
111				error.insertAfter(element.next('span'));
112				element.next('span').focus();
113			} else {
114				error.insertAfter(element);
115				element.focus();
116			}
117		},
118		invalidHandler: function(e, validator){
119			if(validator.errorList.length) {
120				$('#tabs a[href="#' + $(validator.errorList[0].element).closest(".tab-pane").attr('id') + '"]').tab('show');
121			}
122		}
123	});
124
125	$("#mainform").validate({
126		errorElement: "label",
127		errorClass: "error",
128		highlight:function (element){
129			$(element).closest(".form-group").addClass("has-error");
130		},
131		unhighlight:function (element){
132			$(element).closest(".form-group").removeClass("has-error");
133		},
134		errorPlacement: function (error, element) {
135			if (element.parent('.input-group').length) {
136				error.insertAfter(element.parent());
137			} else if (element.hasClass('select2')) {
138				error.insertAfter(element.next('span'));
139			} else {
140				error.insertAfter(element);
141			}
142		}
143	});
144
145	jQuery.validator.addMethod("nik", function(value, element) {
146		nik_valid = /^\d*$/.test(value) && (value.length == 16) && (value.indexOf('0') != 0);
147		return this.optional(element) || nik_valid;
148	}, "NIK harus bilangan 16 digit dan tidak boleh diawali 0");
149
150	// TODO : Jika validasi no_kk sudah siap seperti nik sementara, silahkan gunakan validasi nik dengan pesan yg dinamis
151	jQuery.validator.addMethod("no_kk", function(value, element) {
152		no_kk_valid = /^\d*$/.test(value) && (value.length == 16) && (value.indexOf('0') != 0);
153		return this.optional(element) || no_kk_valid;
154	}, "Nomor KK harus bilangan 16 digit dan tidak boleh diawali 0");
155
156	jQuery.validator.addMethod("angka", function(value, element) {
157		angka_valid = /^\d*$/.test(value);
158		return this.optional(element) || angka_valid;
159	}, "Harus Berisi Angka");
160
161	jQuery.validator.addMethod("luas", function(value, element) {
162		luas_valid = /^\d+(\.\d+)*$/.test(value);
163		return this.optional(element) || luas_valid;
164	}, "Harus Berisi Angka dan untuk koma gunakan \"titik\"");
165
166	jQuery.validator.addMethod("nama", function(value, element) {
167		valid = /^[a-zA-Z '\.,\-]+$/.test(value);
168		return this.optional(element) || valid;
169	}, "Hanya boleh berisi karakter alpha, spasi, titik, koma, tanda petik dan strip");
170
171	jQuery.validator.addMethod("nama_desa", function(value, element) {
172		valid = /^[a-zA-Z '\.,`\-]+$/.test(value);
173		return this.optional(element) || valid;
174	}, "Hanya boleh berisi karakter alpha, spasi, titik, koma, tanda petik dan strip");
175
176	jQuery.validator.addMethod("nama_suku", function(value, element) {
177		valid = /^[a-zA-Z ]+$/.test(value);
178		return this.optional(element) || valid;
179	}, "Hanya boleh berisi karakter alpha dan spasi");
180
181	jQuery.validator.addMethod("alfanumerik", function(value, element) {
182		valid = /^[a-zA-Z0-9 ]+$/i.test(value);
183		return this.optional(element) || valid;
184	}, "Hanya boleh berisi karakter alfanumerik");
185
186	jQuery.validator.addMethod("nama_terbatas", function(value, element) {
187		valid = /^[a-zA-Z0-9 \-]+$/i.test(value);
188		return this.optional(element) || valid;
189	}, "Hanya boleh berisi karakter alfanumerik, spasi dan strip");
190
191	jQuery.validator.addMethod("nama_produk", function(value, element) {
192		valid = /^[a-zA-Z0-9()&_:=°% \-]+$/i.test(value);
193		return this.optional(element) || valid;
194	}, `Hanya boleh berisi karakter alfanumerik, spasi, strip, (, ), &, :, =, °, %`);
195
196	jQuery.validator.addMethod("nomor_sk", function(value, element) {
197		valid = /^[a-zA-Z0-9 \.\-\/]+$/i.test(value);
198		return this.optional(element) || valid;
199	}, "Hanya boleh berisi karakter alfanumerik, spasi, titik, garis miring dan strip");
200
201	jQuery.validator.addMethod("alfanumerik_titik", function(value, element) {
202		valid = /^[a-zA-Z0-9\.]+$/i.test(value);
203		return this.optional(element) || valid;
204	}, "Hanya boleh berisi karakter alfanumerik dan titik");
205
206	jQuery.validator.addMethod("alfanumerik_spasi", function(value, element) {
207		valid = /^[a-zA-Z0-9 ]+$/i.test(value);
208		return this.optional(element) || valid;
209	}, "Hanya boleh berisi karakter alfanumerik dan spasi");
210
211	jQuery.validator.addMethod("bilangan_titik", function(value, element) {
212		valid = /^[0-9\.]+$/.test(value);
213		return this.optional(element) || valid;
214	}, "Hanya boleh berisi karakter numerik dan titik");
215
216	$('.bilangan_titik').each(function() {
217		$(this).rules("add",
218			{
219				bilangan_titik: true,
220			});
221	});
222
223	jQuery.validator.addMethod("bilangan_spasi", function(value, element) {
224		valid = /^[0-9 ]+$/.test(value);
225		return this.optional(element) || valid;
226	}, "Hanya boleh berisi karakter numerik dan spasi");
227
228	$('.bilangan_spasi').each(function() {
229		$(this).rules("add",
230			{
231				bilangan_spasi: true,
232			});
233	});
234
235	// Ketentuan kata sandi sesuai US National Institute of Standards and Technology (NIST)
236	//https://en.wikipedia.org/wiki/Password_policy#:~:text=Passwords%20must%20be%20at%20least,should%20be%20acceptable%20in%20passwords
237	$("#validate_user").validate();
238	jQuery.validator.addMethod("pwdLengthNist", function(value, element) {
239		valid = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.*\s).{8,20}$/.test(value);
240		return this.optional(element) || valid;
241	}, "Harus 8 sampai 20 karakter dan sekurangnya berisi satu angka dan satu huruf besar dan satu huruf kecil dan satu karakter khusus");
242
243	$('.pwdLengthNist').each(function() {
244		$(this).rules("add",
245			{
246				pwdLengthNist: true,
247			});
248	});
249
250	// Untuk donjo-app/views/man_user/manajemen_user_form.php di mana 'radiisi' berarti password tidak diubah
251	// Ketentuan kata sandi sesuai US National Institute of Standards and Technology (NIST)
252	jQuery.validator.addMethod("pwdLengthNist_atau_kosong", function(value, element) {
253		valid = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.*\s).{8,20}$/.test(value);
254		return this.optional(element) || valid || value == 'radiisi';
255	}, "Harus 8 sampai 20 karakter dan sekurangnya berisi satu angka dan satu huruf besar dan satu huruf kecil dan satu karakter khusus");
256
257	jQuery.validator.addMethod("bilangan", function(value, element) {
258		valid = /^[0-9]+$/.test(value);
259		return this.optional(element) || valid;
260	}, "Hanya boleh berisi karakter numerik");
261
262	jQuery.validator.addMethod("alamat", function(value, element) {
263		valid = /^[a-zA-Z0-9 '\.,\-\/]+$/.test(value);
264		return this.optional(element) || valid;
265	}, "Hanya boleh berisi karakter alpha, numerik, spasi, titik, koma, strip, tanda pet
265ik dan garis miring");
266
267	jQuery.validator.addMethod("username", function(value, element) {
268		valid = /^[a-zA-Z0-9]{4,30}$/.test(value);
269		return this.optional(element) || valid;
270	}, "Username hanya boleh berisi karakter alpha, numerik dan terdiri dari 4 hingga 30 karakter");
271
272	jQuery.validator.addMethod("telegram", function(value, element) {
273		valid = /^@[a-zA-Z0-9\_]{5,100}$/.test(value);
274		return this.optional(element) || valid;
275	}, "Username Telegram diawali @ dan berisi minimal 5 karakter alpha, numerik dan garis bawah");
276
277	jQuery.validator.addMethod("pin_mandiri", function(value, element) {
278		angka_valid = /^(?=.*\d).{6,6}$/.test(value);
279		return this.optional(element) || angka_valid;
280	}, "Hanya boleh berisi 6 angka numerik");
281
282	jQuery.validator.addMethod("ip_address", function(value, element) {
283		valid = /^([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}|(\d{1,3}\.){3}\d{1,3}$/.test(value);
284		return this.optional(element) || valid;
285	}, "Isi IP address yang valid");
286
287	jQuery.validator.addMethod("mac_address", function(value, element) {
288		valid = /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/.test(value);
289		return this.optional(element) || valid;
290	}, "Isi Mac address yang valid");
291
292	// Untuk tanggal lapor dan tanggal peristiwa
293	jQuery.validator.addMethod("tgl_lebih_besar", function(value, element, params)  {
294		tgl_minimal = $(params).val().split("-");
295		tgl_minimal = new Date(+tgl_minimal[2], tgl_minimal[1] - 1, +tgl_minimal[0]);
296		tgl_ini = value.split("-");
297		tgl_ini = new Date(+tgl_ini[2], tgl_ini[1] - 1, +tgl_ini[0]);
298		if (tgl_ini >= tgl_minimal)
299			return true;
300		return false;
301	}, "Tanggal harus sama atau lebih besar dari tanggal minimal.");
302
303	jQuery.validator.addMethod("warna", function(value, element) {
304		valid = /^#[a-zA-Z0-9#]+$/i.test(value) || /^rgba[a-zA-Z0-9.,()]+$/i.test(value);
305		return this.optional(element) || valid;
306	}, `Hanya boleh berisi karakter alfanumerik, tagar, titik, koma, buka dan tutup kurung`);
307
308	// https://www.aspsnippets.com/questions/532641/Validation-Latitude-and-Longitude-using-Regular-Expression-in-jQuery/
309	jQuery.validator.addMethod("lat", function(value, element) {
310		var regexLat = new RegExp('^(\\+|-)?(?:90(?:(?:\\.0{1,18})?)|(?:[0-9]|[1-8][0-9])(?:(?:\\.[0-9]{1,18})?))$');
311		return this.optional(element) || regexLat.test(value);
312	}, `Isi lat tidak valid`);
313
314	// https://www.aspsnippets.com/questions/532641/Validation-Latitude-and-Longitude-using-Regular-Expression-in-jQuery/
315	jQuery.validator.addMethod("lng", function(value, element) {
316		var regexLong = new RegExp('^(\\+|-)?(?:180(?:(?:\\.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:\\.[0-9]{1,18})?))$');
317		return this.optional(element) || regexLong.test(value);
318	}, `Isi lng tidak valid`);
319})

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.