1(function($) { 2 $.fn.justweForm = function(options) { 3 var defaultOptions = { 4 // ÐÑпÑавлÑÑÑ Ð»Ð¸ ÑоÑÐ¼Ñ Ð½Ð° ÑеÑÐ²ÐµÑ 5 send: true, 6 // Callback на ÑÑпеÑнÑÑ Ð²Ð°Ð»Ð¸Ð´Ð°ÑÐ¸Ñ 7 isSuccessValidation: function() {} 8 }; 9 10 options = $.extend(defaultOptions, options); 11 12 this.submit(function() { 13 $(this).find('*').removeClass('has-error'); 14 15 if(window.call_value != undefined) { 16 // id ÑеÑÑии Ð´Ð»Ñ Calltouch 17 $(this).find('input[name="call_value"]').val(window.call_value); 18 } 19 20 var validate = true; 21 var targetErrors = new Array(); 22 23 // ÐÑовеÑÑем обÑзаÑелÑнÑе Ð¿Ð¾Ð»Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ 24 $(this).find('input[justwe-form-required]').each(function() { 25 var value = $(this).val().trim(); 26 27 if(value === undefined || value === null || value === '') { 28 $(this).addClass('has-error'); 29 30 targetErrors.push(this); 31 32 validate = false; 33 } 34 }); 35 36 // ÑекбокÑÑ 37 $(this).find('input[type="checkbox"][justwe-form-required]').each(function() { 38 var value = $(this).val().trim(); 39 40 if( !$(this).is(':checked') ) { 41 $(this).parents('label').addClass('has-error'); 42 43 targetErrors.push(this); 44 45 validate = false; 46 } 47 }); 48 49 // вÑпадаÑÑие ÑпиÑки 50 $(this).find('select[justwe-form-required]').each(function() { 51 var value = $(this).val(); 52 53 if(typeof value === 'string' || value instanceof String) { 54 value = value.trim(); 55 } 56 57 if(value === undefined || value === null || value === '' || value === '0') { 58 if( $(this).hasClass('select2') ) { 59 $(this).find('+ span .select2-selection').addClass('has-error'); 60 } else { 61 $(this).addClass('has-error'); 62 } 63 64 targetErrors.push(this); 65 66 validate = false; 67 } 68 }); 69 70 71 if( $(this).has('input[name="mail"]').length > 0 ) { 72 var regExp = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 73 74 var email = $(this).find('input[name="mail"]'); 75 if( !regExp.test( $(email).val() ) ) { 76 $(email).addClass('has-error'); 77 $('.error').addClass('has-error'); 78 79 targetErrors.push(this); 80 81 validate = false; 82 } else { 83 $('.error').removeClass('has-error'); 84 } 85 } 86 87 // ÐÑли еÑÑÑ Ð¾Ñибки, Ñо не оÑпÑавлÑем ÑоÑÐ¼Ñ 88 if(validate === false) { 89 if( targetErrors.length > 0 ) { 90 // Ðелаем ÑокÑÑ Ð½Ð° ÑлеменÑе Ñ Ð¾Ñибкой 91 $(targetErrors[targetErrors.length - 1]).focus(); 92 } 93 94 return false; 95 } else { 96 if( $(this).is('[justwe-metrica]') ) { 97 //eval( $(this).attr('justwe-metrica') ); 98 } 99 100 // ÐолÑÑение вÑе даннÑÑ Ñ ÑоÑм 101 var formData = $(this).serializeArray(); 102 var data = {}; 103 $(formData).each(function(index, obj) { 104 data[obj.name] = obj.value; 105 }); 106 107 options.isSuccessValidation(data); 108 } 109 110 // ÐÑпÑавлÑÑÑ Ð»Ð¸ ÑоÑÐ¼Ñ Ð½Ð° ÑеÑÐ²ÐµÑ 111 if( options.send === false ) { 112 event.preventDefault(); 113 } 114 }); 115 116 117 // ÐÑли в ÑоÑме еÑÑÑ ÑелеÑон, Ñо делаем его "ÑмнÑм" и добавлÑем маÑÐºÑ 118 if( $(this).has('input[name="telephone"]').length > 0 ) {
119 var telephone = $(this).find("input[name='telephone']"); 120 121 $(telephone).mask("+7 (999) 999-99-99"); 122 $(telephone).keydown(function(event) { 123 if(event.keyCode === 37 || event.keyCode === 39) { 124 return false; 125 } 126 127 var value = ($(this).val().replace(/[^\d;]/g, '')) + event.key; 128 129 if (value == '70' || value == '71' || value == '72' || value == '75' || value == '76' || value == '77') { 130 return false; 131 } 132 133 if (value === '789') { 134 $(this).val('9').trigger('paste'); 135 136 return false; 137 } 138 if (value === '73') { 139 $(this).val('').trigger('paste'); 140 141 return false; 142 } 143 if (value === '78') { 144 $(this).val('').trigger('paste'); 145 146 return false; 147 } 148 }); 149 150 // ÐеÑемеÑаем кÑÑÑÐ¾Ñ Ð² наÑало ÑкÑана 151 $(telephone).mouseup(function(event) { 152 // ÐÑÑавлÑем ÑолÑко ÑиÑÑÑ Ð¸ ÑдалÑем пеÑвÑй Ñимвол 153 var value = $(this).val().replace(/[^\d;]/g, '').slice(1); 154 155 $(this).val(value).trigger('input'); 156 }); 157 } 158 159 //ÐапÑÐµÑ Ð²Ð²Ð¾Ð´Ð°, кÑоме бÑкв 160 $("input[justwe-form-only-letter]").keypress(function( b ){ 161 var C = /[ a-zA-Zа-ÑÐ-Я]/; 162 var a = b.which; 163 var c = String.fromCharCode(a); 164 return !!(a==0||a==8||a==9||a==3||c.match(C)); 165 }); 166 167 //УдалÑем ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ÐºÑоме бÑкв пÑи вÑÑавке 168 $("input[justwe-form-only-letter]").bind('keyup blur',function() { 169 $(this).val($(this).val().replace(/[^ a-zA-Zа-ÑÐ-Я]/g,'') ); 170 }); 171 }; 172})(jQuery); 173 174(function () { 175 var onload = window.onload; 176 177 window.onload = function () { 178 if (typeof onload == "function") { 179 onload.apply(this, arguments); 180 } 181 182 var fields = []; 183 var inputs = document.getElementsByTagName("input"); 184 var textareas = document.getElementsByTagName("textarea"); 185 186 for (var i = 0; i < inputs.length; i++) { 187 fields.push(inputs[i]); 188 } 189 190 for (var i = 0; i < textareas.length; i++) { 191 fields.push(textareas[i]); 192 } 193 194 for (var i = 0; i < fields.length; i++) { 195 var field = fields[i]; 196 197 if (typeof field.onpaste != "function" && !!field.getAttribute("onpaste")) { 198 field.onpaste = eval("(function () { " + field.getAttribute("onpaste") + " })"); 199 } 200 201 if (typeof field.onpaste == "function") { 202 var oninput = field.oninput; 203 204 field.oninput = function () { 205 if (typeof oninput == "function") { 206 oninput.apply(this, arguments); 207 } 208 209 if (typeof this.previousValue == "undefined") { 210 this.previousValue = this.value; 211 } 212 213 var pasted = (Math.abs(this.previousValue.length - this.value.length) > 1 && this.value != ""); 214 215 if (pasted && !this.onpaste.apply(this, arguments)) { 216 this.value = this.previousValue; 217 } 218 219 this.previousValue = this.value; 220 }; 221 222 if (field.addEventListener) { 223 field.addEventListener("input", field.oninput, false); 224 } else if (field.attachEvent) { 225 field.attachEvent("oninput", field.oninput); 226 } 227 } 228 } 229 } 230})();
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.