1function openTab(cityName) { 2 // Declare all variables 3 var i, tabcontent, tablinks; 4 5 // Get all elements with class="tabcontent" and hide them 6 tabcontent = document.getElementsByClassName("tabcontent"); 7 for (i = 0; i < tabcontent.length; i++) { 8 tabcontent[i].style.display = "none"; 9 } 10 11 // Get all elements with class="tablinks" and remove the class "active" 12 tablinks = document.getElementsByClassName("tablinks"); 13 for (i = 0; i < tablinks.length; i++) { 14 tablinks[i].className = tablinks[i].className.replace(" active", ""); 15 } 16 17 // Show the current tab, and add an "active" class to the button that opened the tab 18 document.getElementById(cityName).style.display = "block"; 19 document.getElementById(cityName+'Btn').classList.add("active") 20} 21 22function submit_membership_form() { 23 24 var fname = validateField('fname'); 25 var lname = validateField('lname'); 26 var email = validateField('email'); 27 var phone = validateField('phone'); 28 29 if(fname && lname && email && phone) { 30 31 var comment = $('input[name=comment]').val(); 32 33 $.ajax({ 34 type: "POST", 35 data: { 36 fname: $('input[name=firstname]').val(), 37 lname: $('input[name=lastname]').val(), 38 email: $('input[name=email]').val(), 39 phone: $('input[name=phonenumber]').val(), 40 comment: $('textarea[name=comment]').val(), 41 recaptcha : $('#membershipform textarea[name=g-recaptcha-response]').val(), 42 action: 'submit_membership_form' 43 }, 44 url: ajax_url, 45 beforeSend: function () { 46 47 }, 48 success: function (result) { 49 50 var data = JSON.parse(result); 51 if(data.status == 'Success') { 52 var frm = document.getElementsByName('membershipform')[0]; 53 frm.reset(); 54 grecaptcha.reset(); 55 $('.ecs__component-contact__message').show(); 56 } else { 57 alert("An error occured. Please refresh the page and try again"); 58 } 59 60 } 61 }); 62 63 } 64 65 return false; 66} 67 68function validateField(field) { 69 70 if( field == 'fname' ) { 71 72 var name = $('input[name=firstname]').val(); 73 var message = ''; 74 75 var flag = true; 76 77 if (typeof name !== 'string' || name.trim() === '') { 78 flag = false; 79 message = 'First name is a required field'; 80 } 81 82 const regex = /^[a-zA-Z\s]+$/; 83 if(regex.test(name)) { 84 //do nothing 85 } else if(flag) { 86 message = 'First Name is not valid'; 87 flag = false; 88 } 89 90 if(flag == false) { 91 $('#error_fname').html(message); 92 $('#error_fname').show(); 93 } else { 94 $('#error_fname').html(message); 95 $('#error_fname').hide(); 96 } 97 98 return flag; 99 } 100 101 if( field == 'lname' ) { 102 103 var name = $('input[name=lastname]').val(); 104 var message = ''; 105 106 var flag = true; 107 108 if (typeof name !== 'string' || name.trim() === '') { 109 flag = false; 110 message = 'Last name is a required field'; 111 } 112 113 const regex = /^[a-zA-Z\s]+$/; 114 if(regex.test(name)) { 115 //do nothing 116 } else if(flag) { 117 message = 'Last Name is not valid'; 118 flag = false; 119 } 120 121 if(flag == false) { 122 $('#error_lname').html(message); 123 $('#error_lname').show(); 124 } else { 125 $('#error_lname').html(message); 126 $('#error_lname').hide(); 127 } 128 129 return flag; 130 } 131 132 if( field == 'email' ) { 133 134 var email = $('input[name=email]').val(); 135 var message = ''; 136 137 var flag = true; 138 139 if (typeof email !== 'string' || email.trim() === '') { 140 flag = false; 141 message = 'Email is a required field'; 142 } 143 144 const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 145 if(regex.test(email)) { 146 //do nothing 147 } else if(flag) { 148 message = 'Email is not valid'; 149 flag = false; 150 } 151 152 if(flag == false) { 153 $('#error_email').html(message); 154 $('#error_email').show(); 155 } else { 156 $('#error_email').html(message); 157 $('#error_email').hide(); 158 } 159 160 return flag; 161 } 162 163 if( field == 'phone' ) { 164 165 var phone = $('input[name=phonenumber]').val(); 166 var message = ''; 167 168 var flag = true; 169
170 if (typeof phone !== 'string' || phone.trim() === '') { 171 flag = false; 172 message = 'Phone number is a required field'; 173 } 174 175 const phoneRegex1 = /^\(\d{3}\) \d{3}-\d{4}$/; 176 const phoneRegex2 = /^\d{10}$/; 177 const phoneRegex3 = /^\d{3}-\d{3}-\d{4}$/; 178 179 180 if(phoneRegex1.test(phone)) { 181 //do nothing 182 } else if(phoneRegex2.test(phone)) { 183 //do nothing 184 } else if(phoneRegex3.test(phone)) { 185 //do nothing 186 } else if(flag) { 187 message = 'Phone number is not valid'; 188 flag = false; 189 } 190 191 if(flag == false) { 192 $('#error_phone').html(message); 193 $('#error_phone').show(); 194 } else { 195 $('#error_phone').html(message); 196 $('#error_phone').hide(); 197 } 198 199 return flag; 200 } 201} 202 203jQuery(document).ready(function(){ 204 205 document.getElementById("LiveBtn").click(); 206/* 207 jQuery("#membershipform").validate({ 208 rules: { 209 firstname: { 210 required: true, 211 nameRegex: true 212 } 213 }, 214 errorPlacement: function(error, element) { 215 console.log("Yessssss"); 216 jQuery(element).parent().find('span.error').html(error.html()); 217 }, 218 success: function(label,element) { 219 }, 220 messages: { 221 'firstname': { 222 required: "First name is a required field", 223 } 224 } 225 }); 226 */ 227 228});
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.