1 2// $Id: cm-formcheck.js,v 1.3 2022/06/07 19:35:25 MWatrous Stable $ 3 4// Modification Log: 5// 7Jun22 MW: When form is submitted, add elapsed time (milliseconds) to 'form-timestamp' input field 6// 4Jun22 MW: Switch to addEventListener, window.onload was getting clobbered (Norton Gas) 7// 3Jun22 MW: Add diagnostics 8// 10May22 MW: Change 'processed' -> 'form-validate'; 'timestamp' -> 'form-timestamp' 9// 10Feb20 MW: Created this script 10 11 12// Capture millseconds since EPOCH for elapsed time 13var CMLoadTimeNow = Date.now(); 14 15function twoDigits(nValue) { 16 if ( nValue < 10 ) return ( '0' + nValue.toString () ); 17 return ( nValue ); 18} 19 20function cmTimeStr() { 21 var d = new Date(); 22 var timestamp = d.getFullYear() + '-' + twoDigits(d.getMonth() + 1) + '-' + twoDigits(d.getDate()); 23 timestamp = timestamp + ' ' + twoDigits(d.getHours()) + ':' + twoDigits(d.getMinutes()) + ':' + twoDigits(d.getSeconds()); 24 return timestamp; 25} // End cmTimeStr 26 27// Loop thru all "input" fields. Set some hidden fields. Add "onclick" event handler to "submit" button(s). 28function setHidden() { 29 timeStr = cmTimeStr(); 30 var diag = false; 31 if (diag) console.log('setHidden: ' + timeStr); 32 33 // Loop thru all form <input> elements, process hidden ones 34 var A = document.getElementsByTagName('input'); 35 for (i = 0; i < A.length; i++) { 36 if (A[i].type == 'hidden') { 37 // Consider this element 38 var eleName = A[i].name; 39 if (diag) console.log('setHidden: eleName is ' + eleName); 40 if (eleName == 'form-validate') { 41 A[i].value = 'javascript'; 42 continue; 43 } 44 if (eleName == 'form-timestamp') { 45 A[i].value = timeStr; 46 continue; 47 } 48 } 49 if (A[i].type == 'submit') { 50 A[i].addEventListener('click',cmFormSubmit); 51 } 52 } 53} // End setHidden 54 55// Whenever a 'submit' button is clicked, update elapsed time on 'event-timestamp' input fields. 56function cmFormSubmit(evt) { 57 var v, i, eleName; 58 const millis = Date.now() - CMLoadTimeNow; 59// var elapseSecs = Math.floor(millis / 1000); 60// console.log(elapseSecs); 61 var A = document.getElementsByTagName('input'); 62 for (i = 0; i < A.length; i++) { 63 if (A[i].type == 'hidden') { 64 eleName = A[i].name; 65 if (eleName == 'form-timestamp') { 66 var v = A[i].value; 67 A[i].value = v + ' + ' + millis.toString(); 68 } 69 } 70 } 71} // End cmFormSubmit 72 73// Add setHidden to run after page loads 74window.addEventListener('load', setHidden, false);
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.