1$(function() { 2 3 /** 4 * å ¨è§âåè§(ã¯ã©ã¹å®ç¾©) 5 * 使ç¨ä¾ : $this->Form->input('name', array('class'=>'numeric_hankaku')) 6 * @todo idã.numeric_hankakuã«é æ¬¡å¤æ´ããã㨠7 */ 8 $('body').off('change.numeric_hankaku').on('change.numeric_hankaku', '.numeric_hankaku', function(){ 9 $(this).numericZenToHan(); 10 }); 11 12 /** 13 * å ¨è§âåè§(颿°å¼ã³åºãï¼ 14 * 使ç¨ä¾ : $(this).numericZenToHan() 15 */ 16 $.fn.numericZenToHan = function() 17 { 18 //ãã¼ã¿ãåå¾ 19 var data = $(this).val(); 20 var table = { 21 "ï¼":0, 22 "ï¼":1, 23 "ï¼":2, 24 "ï¼":3, 25 "ï¼":4, 26 "ï¼":5, 27 "ï¼":6, 28 "ï¼":7, 29 "ï¼":8, 30 "ï¼":9 31 }; 32 //å ¨è§âåè§ 33 while(data.match(/[ï¼-ï¼]/)) 34 { 35 $.each(table, function(n,val){ 36 data = data.replace(n,val); 37 }); 38 } 39 //0-9以å¤ã®æååãåé¤ãã 40 data = data.replace(/[^0-9]/gi,''); 41 42 //ãã¼ã¿ãã»ãããç´ã 43 $(this).val(data); 44 }; 45 //ååè¨å® 46 $('.numeric_hankaku').trigger('change'); 47 48 /** 49 * è±æ°åã®å ¨è§âåè§(ã¯ã©ã¹å®ç¾©) 50 * 使ç¨ä¾ : $this->Form->input('name', array('class'=>'alphanumeric_char')) 51 */ 52 //å ¨è§âåè§èªååãæ¿ã 53 $('body').off('change.alphanumeric_char').on('change.alphanumeric_char', '.alphanumeric_char', function() { 54 55 $(this).alphanumericZenToChar(); 56 }); 57 58 /** 59 * å ¨è§âåè§(颿°å¼ã³åºãï¼ 60 * 使ç¨ä¾ : $(this).numericZenToHan() 61 * è¨å· : @._+-, 62 */ 63 $.fn.alphanumericZenToChar = function() 64 { 65 //ãã¼ã¿ãåå¾ 66 var data = $(this).val(); 67 68 //è±æ°åã®å¤æ 69 data = data.replace(/[A-Zï½-ï½ï¼-ï¼]/g, function(s) { 70 return String.fromCharCode(s.charCodeAt(0) - 0xFEE0); 71 }); 72 73 //0-9 a-z A-Z以å¤ã®æååãåé¤ãã 74 data = data.replace(/[^0-9 ^a-z ^A-Z]/gi, ''); 75 76 //ãã¼ã¿ãã»ãããç´ã 77 $(this).val(data); 78 }; 79 //ååè¨å® 80 $('.alphanumeric_char').trigger('change'); 81 82 /** 83 * è±æ°åè¨å·ã®å ¨è§âåè§(ã¯ã©ã¹å®ç¾©) 84 * 使ç¨ä¾ : $this->Form->input('name', array('class'=>'alphanumeric_hankaku')) 85 */ 86 //å ¨è§âåè§èªååãæ¿ã 87 $('body').off('change.alphanumeric_hankaku').on('change.alphanumeric_hankaku', '.alphanumeric_hankaku', function() { 88 89 $(this).alphanumericZenToHan(); 90 }); 91 92 /** 93 * å ¨è§âåè§(颿°å¼ã³åºãï¼ 94 * 使ç¨ä¾ : $(this).numericZenToHan() 95 * è¨å· : @._+-, 96 */ 97 $.fn.alphanumericZenToHan = function( should_no_delete ) 98 { 99 //ãã¼ã¿ãåå¾ 100 var data = $(this).val(); 101 //ç¹æ®è¨å·ãã¼ãã« 102 var table = { 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 data = data.replace(/[A-Zï½-ï½ï¼-ï¼]/g, function(s) { 133 return String.fromCharCode(s.charCodeAt(0) - 0xFEE0); 134 }); 135 136 //è¨å·å ¨è§âåè§ 137 while (data.match(/[ï¼ ï¼ã_ï¼ï¼ï¼ï¼ ï¼âï¼ã¼ã¼ââï¼âï¼¾ï½ï½ï¼ï½ï½ï¼ï¼]/)) 138 { 139 $.each(table, function(n,val){ 140 data = data.replace(n,val); 141 }); 142 } 143 144 if (!should_no_delete) 145 { 146 //0-9 a-z A-Z ãã®ä»ç¹æ®è¨å·ä»¥å¤ã®æååãåé¤ãã 147 data = data.replace(/[^0-9 ^a-z ^A-Z ^\@ ^\. ^\_ ^\$ ^\+ ^\- ^\, ^\n ^\r]/gi, ''); 148 } 149 150 //ãã¼ã¿ãã»ãããç´ã 151 $(this).val(data); 152 }; 153 //ååè¨å® 154 $('.alphanumeric_hankaku').trigger('change'); 155 156 /** 157 * è±æ°åã®å ¨è§âåè§(ã¯ã©ã¹å®ç¾©) 158 * 使ç¨ä¾ : $this->Form->input('name', array('class'=>'alphanumeric_char')) 159 */ 160 //å ¨è§âåè§èªååãæ¿ã 161 $('body').off('change.alphanumeric_char').on('change.alphanumeric_char', '.alphanumeric_char', function() { 162 163 $(this).alphanumericZenToHan(); 164 }); 165 166 $.fn.alphanumericZenToChar = function() 167 { 168 //ãã¼ã¿ãåå¾ 169 var data = $(this).val(); 170 171 //è±æ°åã®å¤æ 172 data = data.replace(/[A-Zï½-ï½ï¼-ï¼]/g, function(s) { 173 return String.fromCharCode(s.charCodeAt(0) - 0xFEE0); 174 }); 175 176 //0-9 a-z A-Z以å¤ã®æååãåé¤ãã 177 data = data.replace(/[^0-9 ^a-z ^A-Z]/gi, ''); 178 179 //ãã¼ã¿ãã»ãããç´ã 180 $(this).val(data); 181 }; 182 //åæè¨å® 183 $('.alphanumeric_char').trigger('change'); 184 185 /** 186 * æ°åãå ¨è§âåè§ã«ãã¦16æåå¶é 187 * 使ç¨ä¾ : $this->Form->input('name', array('class'=>'numeric_hankaku')) 188 * @todo idã.numeric_hankakuã«é æ¬¡å¤æ´ããã㨠189 */ 190 $('body').off('change.numeric_hankaku16').on('change.numeric_hankaku16', '.numeric_hankaku16', function() { 191 $(this).numericZenToHan(); 192 193 var data = $(this).val(); 194 195 // 16æåãã大ããå ´å 196 if (data.length > 16) { 197 data = data.substr(0, 16); 198 $(this).val(data); 199 } 200 201 }); 202 //ååè¨å® 203 $('.numeric_hankaku16').trigger('change'); 204 205 /** 206 * æ°åãå ¨è§âåè§ã«ãã¦20æåå¶é 207 * 使ç¨ä¾ : $this->Form->input('name', array('class'=>'numeric_hankaku')) 208 * @todo idã.numeric_hankakuã«é æ¬¡å¤æ´ããã㨠209 */ 210 $('body').off('change.numeric_hankaku20').on('change.numeric_hankaku20', '.numeric_hankaku20', function() { 211 $(this).numericZenToHan(); 212 213 var data = $(this).val(); 214 215 // 20æåãã大ããå ´å 216 if (data.length > 20) { 217 data = data.substr(0, 20); 218 $(this).val(data); 219 } 220 221 }); 222 //ååè¨å® 223 $('.numeric_hankaku20').trigger('change'); 224 225 /** 226 * æ°åãå ¨è§âåè§ã«ãã¦4æåå¶é 227 * 使ç¨ä¾ : $this->Form->input('name', array('class'=>'numeric_hankaku')) 228 * @todo idã.numeric_hankakuã«é æ¬¡å¤æ´ããã㨠229 */ 230 $('body').off('change.numeric_hankaku4').on('change.numeric_hankaku4', '.numeric_hankaku4', function() { 231 $(this).numericZenToHan(); 232 233 var data = $(this).val(); 234 235 // 4æåãã大ããå ´å 236 if (data.length > 4) { 237 data = data.substr(0, 4); 238 $(this).val(data); 239 } 240 241 }); 242 //ååè¨å® 243 $('.numeric_hankaku4').trigger('change'); 244 245 //======================================= 246 // rules 247 // å¿ é ã«ã¼ã« 248 //note:ããããä¸ã§ããªãã¼ã·ã§ã³ãã§ãã¯ã³ã¼ããè¨è¼ãã¦ãã ããã
249 $('div.required,th.required+td').find('input:not([type="hidden"])').addClass('validate[required]'); 250 $('div.required,th.required+td').find('textarea').addClass('validate[required]'); 251 $('div.required,th.required+td').find('select').addClass('validate[required]'); 252 //ãã¼ãã«ã®é ç®åã®ä½ç½®ä¸å´å°ç¨ï¼thã®å³å´ã«tdããªãå ´åã¯ã次ã®trã®ä¸ã対象ã«ããï¼ 253 $('th.required').each(function(){ 254 if ($(this).next('td').length == 0) 255 { 256 $(this).parent('tr').next('tr').find('input:not([type="hidden"])').addClass('validate[required]'); 257 $(this).parent('tr').next('tr').find('textarea').addClass('validate[required]'); 258 $(this).parent('tr').next('tr').find('select').addClass('validate[required]'); 259 } 260 }); 261 //form ver2以é 262 $('.myForm input.required:not([type="hidden"])').addClass('validate[required]'); 263 $('.myForm textarea.required').addClass('validate[required]'); 264 $('.myForm select.required').addClass('validate[required]'); 265 266 // ååã«ã¼ã« 267 $("*[name='data[User][name1]']").addClass('validate[maxSize[64]]'); 268 $("*[name='data[User][name2]']").addClass('validate[maxSize[64]]'); 269 270 // ã¡ã¢ãã«ã¼ã« 271 $("*[name='data[User][mail]']").addClass('validate[custom[email], maxSize[254]]'); 272 273 // ãµãã¢ãã«ã¼ã« 274 // è¤æ°æå®æã®å ¨ä½é·ã§ã¯ãªããåã¢ãã¬ã¹ã®é·ãããµã¼ãã¼å´ã§å¤å®ãã 275 $("*[name='data[User][submail]']").addClass('validate[custom[subemail]]'); 276 277 // UnivaPay ã¡ã¢ãã«ã¼ã« 278 $("*[name='data[User][em]']").addClass('validate[custom[email], maxSize[254]]'); 279 280 // ããªã¬ãã«ã¼ã« 281 $("*[name='data[User][kana]']").addClass('validate[custom[onlyKana]]'); 282 283 // é»è©±çªå·ã«ã¼ã« 284 $("*[name='data[User][tel]']").addClass('validate[custom[phone]]'); 285 286 // éµä¾¿çªå·ã«ã¼ã« 287 $("*[name='data[User][zipcode]']").addClass('validate[custom[zipcode]]'); 288 289 // ãã¹ã¯ã¼ã 290 $("*[name='data[User][password]']").addClass('validate[custom[password]]'); 291 292 // ã«ã¬ã³ãã¼å event_datetime ã¯ã«ã¬ã³ãã¼ UI æä½ã®ãã text æ¬ä½ãé表示㧠293 // validationEngine æ¨æºã® :visible å¤å®ã§ã¯æ¤è¨¼å¯¾è±¡å¤ã«ãªããsubmit ããã¯ã¨ 294 // validationEngine('validate') ç´å¼ã³ã®ä¸¡å°ç·ããåä¸å¤å®ãåå©ç¨ããã 295 // select / radio åã® event_datetime 㯠validationEngine æ¨æºã§æ¤è¨¼ãããããã 296 // ããã§ã®å°ç¨å¤å®ã®å¯¾è±¡å¤ï¼ã«ã¬ã³ãã¼å å¼ div ã®æç¡ã§èå¥ããï¼ã 297 var resolveEventDatetimeCalendar = function(calendarDatetimeInput) { 298 // bindEventDatetimePromptAutoClose ã¨æ¢ç´¢ã«ã¼ã«ãæããããã 299 // å å¼è¦ç´ ã® event_calendar ã®ã¿ã対象ã«ããã 300 return calendarDatetimeInput.nextAll('div.event_calendar').first(); 301 }; 302 303 var getEventDatetimeRequiredAlertText = function() { 304 return ($.validationEngineLanguage 305 && $.validationEngineLanguage.allRules 306 && $.validationEngineLanguage.allRules.required 307 && $.validationEngineLanguage.allRules.required.alertText) 308 || '* å¿ é é ç®ã§ã'; 309 }; 310 311 var validateEventDatetimeCalendarRequired = function(form) { 312 var calendarDatetimeInput = form.find("input[name='data[User][event_datetime]']").first(); 313 if (!calendarDatetimeInput.length) { 314 return true; 315 } 316 317 // å å¼ã« event_calendar ãæããªãå ´åï¼select / radio åï¼ã¯ 318 // validationEngine æ¨æºã§æ¤è¨¼ããããããããã§ã¯ä½ãããªãã 319 var calendar = resolveEventDatetimeCalendar(calendarDatetimeInput); 320 if (!calendar.length) { 321 return true; 322 } 323 324 var hasEventDatetimeValue = $.trim(String(calendarDatetimeInput.val() || '')) !== ''; 325 if (hasEventDatetimeValue) { 326 calendarDatetimeInput.validationEngine('closePrompt', calendarDatetimeInput); 327 calendar.validationEngine('closePrompt', calendar); 328 return true; 329 } 330 331 // showPrompt ã¯æ¢åããã³ãããããã°æ´æ°ããããããäºåã® sibling å¤å®ã¯è¡ããªãã 332 calendar.validationEngine('showPrompt', getEventDatetimeRequiredAlertText(), 'error', 'topLeft', true); 333 334 return false;
335 }; 336 337 var eventDatetimeValidateSkipFlag = '__eventDatetimeValidateSkip'; 338 339 // validationEngine('validate') ç´å¼ã³çµè·¯ã§ã event_datetime ã®å¿ é å¤å®ãé©ç¨ããã 340 if (!$.fn.__myaspEventDatetimeValidateHooked) { 341 var originalValidationEngine = $.fn.validationEngine; 342 $.fn.validationEngine = function() { 343 var method = arguments.length > 0 ? arguments[0] : null; 344 var result = originalValidationEngine.apply(this, arguments); 345 if (method !== 'validate') return result; 346 347 var hasInvalidEventDatetime = false; 348 $(this).each(function() { 349 var form = $(this); 350 if (form.attr('id') !== 'UserItemForm') { 351 return; 352 } 353 354 if (form.data(eventDatetimeValidateSkipFlag)) { 355 return; 356 } 357 358 if (!validateEventDatetimeCalendarRequired(form)) { 359 hasInvalidEventDatetime = true; 360 return false; 361 } 362 }); 363 364 return hasInvalidEventDatetime ? false : result; 365 }; 366 $.fn.__myaspEventDatetimeValidateHooked = true; 367 } 368 369 // UserItemForm ã¯å¸¸æããªãã¼ã·ã§ã³ãæå¹åããevent_datetime ãæã¤ãã©ã¼ã ã®ã¿è¿½å å¿ é å¤å®ãè¡ã 370 $("*[id='UserItemForm']").each(function() { 371 var form = $(this); 372 373 var attachOptions = { 374 //ã³ã¡ã³ãä½ç½®ãå·¦å´ã«è¨å® 375 promptPosition:"topLeft" 376 }; 377 378 if (form.find("input[name='data[User][event_datetime]']").length) { 379 // NOTE: å°ç¨å¤å®ã¯ã«ã¬ã³ãã¼å event_datetime ã«éãã¦ããã 380 // å¥ç¨®ã®ãé表示ã ãå¿ é ãé ç®ãæ°ãã«æ±ãå ´åã¯ã 381 // validateEventDatetimeCalendarRequired ã«æ··ããå¥é¢æ°ã¨ãã¦è¿½å ãããã¨ã 382 form.off('submit.eventDatetimeRequired') 383 .on('submit.eventDatetimeRequired', function (e) { 384 if (validateEventDatetimeCalendarRequired(form)) { 385 return true; 386 } 387 388 // event_datetime 以å¤ã®é ç®ã¨ã©ã¼è¡¨ç¤ºãç¶æããããã 389 // submit 忢åã«é常㮠validate ãå®è¡ããã 390 form.data(eventDatetimeValidateSkipFlag, true); 391 try { 392 form.validationEngine('validate'); 393 } 394 finally { 395 form.removeData(eventDatetimeValidateSkipFlag); 396 } 397 398 // event_datetime æªå ¥åæã¯ãåä¸è¦ç´ ã« addEventListener ã§ç»é²ããã 399 // å¾ç¶ submit ãã³ãã©ï¼æ±ºæ¸å¦çãªã©ï¼ã¸é²ã¾ããªããã峿忢ããã 400 e.preventDefault(); 401 e.stopImmediatePropagation(); 402 return false; 403 }); 404 } 405 406 // bind 407 form.validationEngine('attach', attachOptions); 408 409 // datetimeã®ããã³ããèªåçã«éããã¤ãã³ãããã¤ã³ã 410 if (form.find("input[name='data[User][event_datetime]']").length && typeof bindEventDatetimePromptAutoClose === 'function') { 411 bindEventDatetimePromptAutoClose(form); 412 } 413 }); 414 415 //使ãæããæã«ã¯é½éåºçããã§ãã¯ãã 416 $("*[name='data[User][zip]']").blur(function(){ 417 $("*[name='data[User][pref]']").trigger('blur'); 418 }); 419 420 //ãæ¥ä»é¸æã§å¿ é ã§ã¯ãªãå ´åã«ãããããã®é¸æè¢ãé¸ã°ããéã«ã¨ã©ã¼ã¡ãã»ã¼ã¸ã表示 421 $('body').off('change.required_color').on('change.required_color', '.form_input_datetime1:not(.required), .form_input_datetime2:not(.required)', function() { 422 let freeX = $(this).attr('name').match(/data\[User\]\[([a-z0-9]+)\]\[(year|month|day)\]/)?.[1]; 423 if (!freeX) return; 424 let selects = $('select[name^="data[User][' + freeX + ']"]'); 425
426 // 鏿è¢ã®ä¸ã«ç©ºã§ãªãå¤ãåå¨ããã 427 let isSelect = selects.toArray().some(select => $(select).val() !== '' && Number($(select).val()) > 0); 428 // å¿ é ãã§ãã¯ãä»ä¸ããã¦ãããã©ãã 429 let isRequired = false; 430 431 selects.each(function() { 432 let isSelectAndEmpty = isSelect && $(this).val() === ''; 433 // 空ã®é ç®ã«è¦åè²ãä»ä¸ 434 $(this).toggleClass('required_color', isSelectAndEmpty); 435 // 空ã®é ç®ã«å¿ é ãã§ãã¯ãä»ä¸ï¼ã¾ã ä»ä¸ããã¦ããªãå ´åï¼ 436 $(this).toggleClass('validate[required]', isSelectAndEmpty && !isRequired); 437 438 // ã¨ã©ã¼ã¡ãã»ã¼ã¸ãé表示ã«ãã 439 if(!isSelectAndEmpty || isRequired){ 440 $('.' + $(this).prop('id') + 'formError').fadeOut(300, function() { 441 $(this).remove(); 442 }); 443 } 444 // å¿ é ãã§ãã¯ãä»ä¸ããããã¨ãè¨é² 445 if(isSelectAndEmpty && !isRequired) { 446 isRequired = true; 447 } 448 }); 449 450 }); 451 // ååè¨å® 452 $('.form_input_datetime1:not(.required), .form_input_datetime2:not(.required)').trigger('change'); 453 454 // æ¥ä»é¸æã®ã¨ã©ã¼ã¡ãã»ã¼ã¸ã1ã¤ã«ã¾ã¨ãã 455 $('.myForm select[name$="[day]"].required.form_input_datetime1, .myForm select[name$="[day]"].required.form_input_datetime2').each(function(){ 456 let freeX = $(this).attr('name').match(/data\[User\]\[([a-z0-9]+)\]\[(day)\]/)?.[1]; 457 if (!freeX) return; 458 459 function setCondRequired(name, id) { 460 const select = $('select[name^="data[User][' + freeX + '][' + name +']"]'); 461 select.removeClass('validate[required]') 462 .addClass('validate[condRequired[' + id + ']]') 463 .toggleClass('required_color', $(select).hasClass('required') && ($(select).val() === '' || Number($(select).val()) <= 0)); 464 } 465 466 if ($(this).hasClass('form_input_datetime1')) { 467 setCondRequired('month', $('select[name^="data[User][' + freeX + '][year]"]').prop('id')); 468 } 469 setCondRequired('day', $('select[name^="data[User][' + freeX + '][month]"]').prop('id')); 470 }); 471 472 // åæå¤ã®å¹´ææ¥ãè¨å® 473 $('.now_year').val(new Date().getFullYear()); 474 $('.now_month').val(String(new Date().getMonth() + 1).padStart(2, "0")); 475 $('.now_day').val(String(new Date().getDate()).padStart(2, "0")); 476});
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.