1/** 2 * ãã¬ã¼ã ã¯ã¼ã¯å ±éã®å¦çãã¾ã¨ãããã® 3 * common.js 4 */ 5 6function validation(form_data, callback = null) { 7 8 let url = home_url + 'validation'; 9 10 let param = { 'submit_flg': '' }; 11 param['callback'] = callback; 12 13 ajax_fetch(url, form_data, callback_validation, param); 14 15} 16 17/** 18 * validationå¾ã®å¦ç 19 * @param {} data 20 * @param {*} param 21 */ 22async function callback_validation(data, param) { 23 24 await hiddenMessageAll(); 25 26 await hiddenNoticeAll(); 27 28 await removeAllEntryField(); 29 30 await removeAllInputError(); 31 32 await addInputError(data); 33 34 await changeSubmitButton(param); 35 36 await clearValidation(param); 37 38 await hiddenSpinner(); 39 40 await doCallback(data, param); 41 42} 43 44//追å ã¡ãã»ã¼ã¸ãä¸ç«¯å ¨ã¦åé¤ 45async function hiddenMessageAll() { 46 var elems = document.getElementsByClassName('entry-message'); 47 if (elems.length > 0) { 48 for (var i = 0; i < elems.length; i++) { 49 var e = elems[i]; 50 while (e.lastChild) { 51 e.removeChild(e.lastChild); 52 } 53 } 54 } 55} 56 57//ã¿ãã«è¡¨ç¤ºããããnoticeããå ¨ã¦åé¤ 58async function hiddenNoticeAll() { 59 var elems = document.getElementsByClassName('error-caution'); 60 if (elems.length > 0) { 61 for (var i = 0; i < elems.length; i++) { 62 var e = elems[i]; 63 while (e.lastChild) { 64 e.removeChild(e.lastChild); 65 } 66 } 67 } 68} 69 70//entry-fieldã®ã¨ã©ã¼ã¹ã¿ã¤ã«ãåé¤ 71async function removeAllEntryField() { 72 const elems = Array.from(document.getElementsByClassName('entry-field')); 73 elems.forEach(elem => { 74 elem.classList.remove('input-error'); 75 elem.parentNode.classList.remove('input-error'); 76 }); 77} 78 79//input errorã®ã¨ã©ã¼ã¹ã¿ã¤ã«ãåé¤ 80async function removeAllInputError() { 81 const elems = Array.from(document.getElementsByClassName('input-error')); 82 elems.forEach(elem => { 83 elem.classList.remove('input-error'); 84 elem.parentNode.classList.remove('input-error'); 85 }); 86} 87 88//ã¨ã©ã¼ãä»ä¸ 89async function addInputError(data) { 90 91 if (data.length === null || data.length === 0) return; 92 93 var tab = []; 94 95 for (var name in data) { 96 // 追å ããè¦ç´ ã使ãã¾ã 97 var newContent = '<div class="error-message add-message">' + data[name] + '</div>'; 98 99 /** 100 * é åã®å ´åã¯ãdataã®ä¸ã«ã¯ãname.1 => 'ã¨ã©ã¼ã¡ãã»ã¼ã¸'ã¨ãªã£ã¦ããã 101 * HTMLä¸ã®IDã¯ãname[1]ã®å½¢å¼ãªã®ã§ãname.1.company => name[1]ã«å¤æããå¿ è¦ãããã 102 * variable夿°ã使ç¨ãã¦ããå ´åãdataã®ä¸ã«ã¯ãname.1.company => 'ã¨ã©ã¼ã¡ãã»ã¼ã¸'ã¨ãªã£ã¦ããã 103 * HTMLä¸ã®IDã¯ãname[1][company]ã®å½¢å¼ãªã®ã§ãname.1.company => name[1][company]ã«å¤æããå¿ è¦ãããã 104 */ 105 const hasPeriod = name.includes("."); 106 if(hasPeriod){ 107 const nameArr = name.split("."); 108 name = nameArr[0]; 109 if(nameArr[1]) name += '['+ nameArr[1] + ']'; 110 if(nameArr[2]) name += '['+ nameArr[2] + ']'; 111 } 112 113 //ã¨ã©ã¼ã¡ãã»ã¼ã¸ã表示ããã 114 var elem = document.getElementById(name + '-message'); 115 if (elem) { 116 elem.insertAdjacentHTML('beforeend', newContent); 117 118 //ã¿ãè¦ç´ ãåå¾ãã¿ããããå ´å 119 var tab_elem = elem.closest(".tab-pane"); 120 121 //ã¿ãidãé åã«æ ¼ç´ 122 if (tab_elem) { 123 var tab_id = tab_elem.getAttribute("id"); 124 tab.push(tab_id); 125 } 126 } 127 128 //å ¥åé ç®ã®èæ¯ã赤ããã 129 if (form) { 130 var targetElements = form.getElementsByClassName(name); 131 } 132 if (targetElements.length !== 0) {// name屿§ãåå¨ããå ´å 133 [].forEach.call(targetElements, function (elems) { 134 if (elems.type == 'checkbox' || elems.type == 'radio') { 135 elems.parentNode.classList.add("input-error"); 136 } else { 137 elems.classList.add("input-error"); 138 } 139 }) 140 }
141 else {// name屿§ãåå¨ããªãå ´åï¼variableãã£ã¼ã«ãï¼ 142 var elems = document.getElementById(name); 143 if (elems) { 144 elems.classList.add("input-error"); 145 } 146 } 147 148 } 149 150 await displayTabIcon(tab); 151 152} 153 154//ã¿ãä¸ã«ã¨ã©ã¼ã¢ã¤ã³ã³ã表示 155async function displayTabIcon(tab) { 156 if (tab.length) { 157 let set = new Set(tab);//tab_idã®éè¤æé¤ 158 let tab_deduplication = Array.from(set);//setããé åã¸å¤æ 159 for (const tab_id of tab_deduplication) { 160 var nav_item_elem = document.getElementById("nav-item-" + tab_id); 161 nav_item_elem.insertAdjacentHTML('beforeend', '<div class="error-caution ' + tab_id + '" data-bs-toggle="tooltip" data-bs-placement="top" title="å ¥åã¨ã©ã¼ãããã¾ãã" ><i class="fas fa-exclamation-circle"></i></div>'); 162 } 163 } 164} 165 166//submitãã¿ã³ã®å¦ç 167async function changeSubmitButton(param) { 168 /*submitãã¿ã³ã®å¦ç*/ 169 var newContent = '<div class="error-message add-message">ãã¼ã¿ã«ã¨ã©ã¼ããããã<br>å¿ è¦ãªå ¥åãå®äºãã¦ãã¾ããã</div>'; 170 171 //ã¨ã©ã¼ã¡ãã»ã¼ã¸ã表示ããã 172 if (param['message-id']) { 173 var submit_message = document.getElementById(param['message-id']); 174 } else { 175 var submit_message = document.getElementById('submit-message'); 176 } 177 178 if (submit_message && !submit_message.hasChildNodes()) { 179 submit_message.insertAdjacentHTML('beforeend', newContent); 180 } 181 182 //ãã¿ã³ãç¡å¹åãã 183 if (param['submit-id']) { 184 var submit_elem = document.getElementById(param['submit-id']); 185 } else { 186 var submit_elem = document.getElementById('form-submit'); 187 } 188 if (submit_elem) { 189 submit_elem.classList.add("btn-disabled"); 190 } 191} 192 193/** 194 * ã¨ã©ã¼ãåå¨ããªãå ´å 195 * @param {*} param 196 */ 197async function clearValidation(param) { 198 let elems = document.getElementsByClassName('input-error'); 199 200 //ã¨ã©ã¼ã¡ãã»ã¼ã¸ããªãå ´å 201 if (elems.length === 0) { 202 //ã¨ã©ã¼ã¡ãã»ã¼ã¸ãæ¶ã 203 if (param['message-id']) { 204 var submit_message = document.getElementById(param['message_id']); 205 } else { 206 var submit_message = document.getElementById('submit-message'); 207 } 208 if (submit_message != null && submit_message.hasChildNodes()) { 209 submit_message.removeChild(submit_message.lastChild); 210 } 211 212 //ãã¿ã³ãæå¹åãã 213 if (param['submit-id']) { 214 var submit_elem = document.getElementById(param['submit-id']); 215 } else { 216 var submit_elem = document.getElementById('form-submit'); 217 } 218 if (submit_elem) { 219 submit_elem.classList.remove("btn-disabled"); 220 } 221 222 } 223 224} 225 226function doCallback(data, param) { 227 if (data.length === null || data.length === 0) { 228 if (param['callback']) { 229 param['callback'](data, param); 230 } 231 } 232}
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.