1(function($) { 2 3/** Client-side validation */ 4function setFieldCss(element, valid) { 5 6 if(valid) { 7 $(element).removeClass('t-error'); 8 if($( '#terms' ).hasClass( 't-error' )){ 9 $( '#uniform-terms' ).addClass('t-error'); 10 } else { 11 $( '#uniform-terms' ).removeClass('t-error'); 12 } 13 } else { 14 $(element).addClass('t-error'); 15 if($( '#terms' ).hasClass( 't-error' )){ 16 $( '#uniform-terms' ).addClass('t-error'); 17 } else { 18 $( '#uniform-terms' ).removeClass('t-error'); 19 } 20 } 21} 22 23 24function validateField(element, message) { 25 // Show the checkmark 26 setFieldCss(element, true); 27} 28 29function invalidateField(element, message, messageField) { 30 var errorMessage = $('<li id="validate-' + $(element).attr('id') + '">' + message + '</li>'); 31 32 // Show the icon 33 setFieldCss(element, false); 34 35 // Add message to form errors 36 if(messageField) { 37 messageField.replaceWith(errorMessage); 38 } else { 39 $('#form-errors').append(errorMessage); 40 } 41} 42 43function toggleMessages() { 44 if($('#form-errors').children().length <= 0) { 45 $('#form-errors').hide(); 46 } else { 47 $('#form-errors').show(); 48 $('.validation-error').hide(); 49 } 50} 51 52 53 54function checkField(element) { 55 // Remove old error messages 56 var messageBox = $("#form-errors #validate-" + $(element).attr('id')); 57 if(messageBox.length <= 0) { 58 messageBox = null; 59 } 60 if($(element).hasClass('notempty') 61 && ($(element).val().length <= 0 62 || $(element).val() == $(element).attr('placeholder'))) // IE9: Also invalid if equals placeholder 63 { 64 // Check the presence of user input 65 invalidateField(element, $(element).data('validate-empty'), messageBox); 66 return false; 67 } 68 69 if($(element).hasClass('firstname') && ($(element).val().indexOf('@') > 0)) 70 {
71 const regex1 = /^[A-Za-zÃ-È0-9+_.-]+@[A-Za-zÃ-È0-9.-]+$/; 72 if (!regex1.test($(element).val().toLowerCase())) { 73 invalidateField(element, $(element).data('validate-nofirstname'), messageBox); 74 return false; 75 } 76 } else if($(element).hasClass('firstname') && ($(element).val().indexOf('@') <= 0)) { 77 const regex2 = /^[A-Za-zÃ-È0-9+. ]+$/; 78 if (!regex2.test($(element).val().toLowerCase())) { 79 invalidateField(element, $(element).data('validate-nofirstname'), messageBox); 80 return false; 81 } 82 } 83 84 if($(element).hasClass('password') 85 && $(element).val().length < 6) 86 { 87 // Check minimum password length 88 invalidateField(element, $(element).data('validate-tooshort'), messageBox); 89 return false; 90 } 91 if($(element).hasClass('email') 92 && !/(.+)@(.+)\.(.+)/.test($(element).val())) 93 { 94 invalidateField(element, $(element).data('validate-noaddr'), messageBox); 95 return false; 96 } 97 if($(element).hasClass('validate-gender')) { 98 var genderchecked = false; 99 $(element).find("input").each(function() { 100 if($(this).is(":checked")){ 101 genderchecked=true 102 } 103 }); 104 if(genderchecked == false){ 105 invalidateField(element, $(element).data('validate-empty'), messageBox); 106 return false; 107 } 108 } 109 if($(element).hasClass('checked')) { 110 if(!$(element).is(":checked")){ 111 invalidateField(element, $(element).data('validate-unchecked'), messageBox); 112 return false; 113 } 114 } 115 116 117 // Succesfully validated 118 validateField(element); 119 if(messageBox != null) { 120 messageBox.remove(); 121 } 122 return true; 123} 124 125function checkForm(form) { 126 var valid = true; 127 $(form).find('.validate').each(function() { 128 if(!checkField(this)) { 129 valid = false; 130 } 131 }); 132 133 return valid; 134} 135 136$(function() { 137 toggleMessages(); 138 139 $('#registrationForm .validate').change(function(event) { 140 checkField(this); 141 toggleMessages(); 142 }); 143 144 $('#registrationForm').submit(function() { 145 var valid = checkForm(this); 146 toggleMessages(); 147 return valid; 148 }); 149}); 150 151})(jQuery);
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.