1/* 2** Unobtrusive custom validation code using jQuery Validate, tailored for Mobile site ONLY 3** mobile needs these hacks because the css should be on the part div.input-wrap not on the input text 4*/ 5 6$.validator.addMethod("atLeastOneValidate", atLeastOneValidation, "Please enter at least one field."); 7function atLeastOneValidation(value, element) { 8 var prop = $(element).attr('data-val-atleastonerequired-properties'); 9 var array = new Array(); 10 array = prop.split(','); 11 if (array.length > 0) { 12 for (i in array) { 13 var input = '#' + array[i]; 14 var val = $(input).val(); 15 if (val != '') { 16 return true; 17 } 18 } 19 } 20 else { 21 return true; 22 } 23 return false; 24} 25 26$.validator.addMethod("addressValidate", addressValidation, "Both address and city fields are required."); 27function addressValidation(value, element) { 28 if ($('#Zip').val() == '') { 29 var addressVal = $('#Address').val(); 30 31 if (addressVal != '' || cityVal != '') { 32 if (value == '') { 33 return false; 34 } 35 } 36 } 37 return true; 38} 39 40/////////////////////////////////////////////////////////////////////////// 41//Because Homepage form is so long have to add Jquery Plug-in Validation so that the form will stay in place on error 42 43//Adding jq validation plugin to form /Home/Bill 44$('#BillFrm').validate({ 45 rules: { 46 BillNumber: { 47 required: true 48 } 49 }, 50 messages: { 51 BillNumber: { 52 required: "Bill # is required." 53 } 54 }, 55 errorElement: "span", 56 errorClass: "field-validation-error", 57 errorPlacement: function (error, element) { 58 error.insertBefore('#BillFrm-Help'); 59 }, 60 highlight: function (element) { 61 $(element).addClass("validation-error").parent('.input-wrap').addClass("validation-error").addClass('validation-error-border'); 62 }, 63 unhighlight: function (element) { 64 $(element).removeClass('validation-error').parent('.input-wrap').removeClass('validation-error').removeClass('validation-error-border'); 65 }, 66 focusInvalid: false, 67 onkeyup: false, 68 onfocusout: false 69}); 70 71//Adding jq validation plugin to form /Home/Bills 72$('#BillTermFrm').validate({ 73 rules: { 74 SearchQuery: { 75 required: true 76 } 77 }, 78 messages: { 79 SearchQuery: { 80 required: "Search Term is required." 81 } 82 }, 83 errorElement: "span", 84 errorClass: "field-validation-error", 85 errorPlacement: function (error, element) { 86 error.insertBefore('#BillTermFrm-Help'); 87 }, 88 highlight: function (element) { 89 $(element).addClass("validation-error").parent('.input-wrap').addClass("validation-error").addClass('validation-error-border'); 90 }, 91 unhighlight: function (element) { 92 $(element).removeClass('validation-error').parent('.input-wrap').removeClass('validation-error').removeClass('validation-error-border'); 93 }, 94 focusInvalid: false, 95 onkeyup: false, 96 onfocusout: false 97}); 98 99//Adding jq validation plugin to form /Home/Statutes 100$('#StatuteFrm').validate({ 101 rules: { 102 StatuteSearchQuery: { 103 atLeastOneValidate: true, 104 }, 105 GoToChapter: { 106 atLeastOneValidate: true 107 } 108 }, 109 messages: { 110 StatuteSearchQuery: { 111 atLeastOneValidate: "", 112 } 113 }, 114 errorElement: "span", 115 errorClass: "field-validation-error", 116 errorPlacement: function (error, element) { 117 error.insertBefore('#StatuteFrm-Help'); 118 }, 119 highlight: function (element) { 120 $(element).addClass("validation-error").parent('.input-wrap').addClass("validation-error").addClass('validation-error-border'); 121 }, 122 unhighlight: function (element) { 123 $(element).removeClass('validation-error').parent('.input-wrap').removeClass('validation-error').removeClass('validation-error-border'); 124 }, 125 focusInvalid: false, 126 onkeyup: false, 127 onfocusout: false 128}); 129 130//Adding jq validation plugin to form /Home/SenatorsByAddress 131$('#AddressLeg').validate({ 132 rules: { 133 Address: { 134 addressValidate: true 135 }, 136 }, 137 messages: { 138 Address: { 139 atLeastOneValidate: "", 140 addressValidate: "Address is required." 141 }, 142 }, 143 errorElement: "span", 144 errorClass: "field-validation-error", 145 errorPlacement: function (error, element) { 146 error.insertBefore('#AddressLeg-Help'); 147 }, 148 highlight: function (element) {
149 $(element).addClass("validation-error").parent('.input-wrap').addClass("validation-error").addClass('validation-error-border'); 150 }, 151 unhighlight: function (element) { 152 $(element).removeClass('validation-error').parent('.input-wrap').removeClass('validation-error').removeClass('validation-error-border'); 153 }, 154 focusInvalid: false, 155 onkeyup: false, 156 onfocusout: false 157}); 158 159//Adding jq validation plugin to form /Home/SenatorsByName 160$('#NameLeg').validate({ 161 rules: { 162 Senator: { 163 required: true 164 } 165 }, 166 messages: { 167 Senator: { 168 required: " Please select a Senator." 169 } 170 }, 171 errorElement: "span", 172 errorClass: "field-validation-error", 173 errorPlacement: function (error, element) { 174 error.insertBefore('#NameLeg-Help'); 175 }, 176 highlight: function (element) { 177 $(element).addClass("validation-error"); 178 }, 179 unhighlight: function (element) { 180 $(element).removeClass("validation-error"); 181 }, 182 focusInvalid: false, 183 onkeyup: false, 184 onfocusout: false 185}); 186 187//Unobtrusive Javascript styling for div with red background & border 188//This is for standard MVC Data Annotation errors 189$('form').on('submit', function () { 190 191 //Below removes validation/error classes from other forms on page 192 var submittedFormAction = $(this).attr('action'); 193 $('form').not('form[action="' + submittedFormAction + '"]').each(function () { 194 var otherFormAction = $(this).attr('action'); 195 $('form[action="' + otherFormAction + '"] span.field-validation-error').text(''); 196 $('form[action="' + otherFormAction + '"] .validation-error').removeClass("validation-error").removeClass('validation-error-border'); 197 }); 198}); 199 200//Remove validation/error classes on input blur 201$('.input-wrap input,.input-wrap select').bind('blur', function () { 202 if ($(this).val() != '') { 203 $('form span.field-validation-error').text(''); 204 $('form .validation-error').removeClass("validation-error").removeClass('validation-error-border'); 205 } 206}); 207 208
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.