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.