1$(document).ready(function() { 2 $('input').focus(function(){ 3 $(this).parent().removeClass('has-error'); 4 // console.log('removeClass!'); 5 }); 6 $('#order-form').submit(function(event) { 7 event.preventDefault ? event.preventDefault() : (event.returnValue = false); 8 if(!formValidation(event.target)){return false;} 9 var action = $(this).attr('action'); 10 var sendingForm = $(this); 11 var submit_btn = $(this).find('button[type=submit]'); 12 var value_text = $(submit_btn).text(); 13 var waiting_text = 'SENDING'; 14 $.ajax({ 15 type: "POST", 16 url: action, 17 data: $(event.target).serializeArray(), 18 beforeSend:function(){ 19 $(submit_btn).prop( 'disabled', true ); 20 $(submit_btn).addClass('waiting').text(waiting_text); 21 }, 22 success: function(msg,status){ 23 // console.log(msg); 24 var success = true; 25 $(sendingForm).trigger('reset'); 26 $(submit_btn).removeClass('waiting'); 27 $(submit_btn).text(value_text); 28 $(submit_btn).prop( 'disabled', false ); 29 $('#order').modal('hide'); 30 $('#order').on('hidden.bs.modal', function (e) { 31 if (success) { 32 $('#success').modal('show'); 33 setTimeout(function(){ 34 console.log('success sending!'); 35 $('#success').modal('hide'); 36 }, 4000); 37 success = false; 38 } 39 }); 40 }, 41 error: function(){ 42 $(submit_btn).prop( 'disabled', false ); 43 $(submit_btn).removeClass('waiting').text("ERROR"); 44 setTimeout(function(){ 45 $(submit_btn).delay( 3000 ).text(value_text); 46 }, 3000); 47 } 48 }); 49 event.preventDefault(); 50 }); 51}); 52function formValidation(formElem){ 53 var elements = $(formElem).find('.required'); 54 var errorCounter = 0; 55 $(elements).each(function(indx,elem){ 56 var placeholder = $(elem).attr('placeholder'); 57 if($.trim($(elem).val()) == '' || $(elem).val() == placeholder){ 58 $(elem).parent().addClass('has-error'); 59 errorCounter++; 60 } 61 else{ 62 $(elem).parent().removeClass('has-error'); 63 } 64 }); 65 $('input[name="phone"]').each(function() { 66 var pattern = new RegExp(/^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$/); 67 var data_pattern = $(this).attr('data-pattern'); 68 var data_placeholder = $(this).attr('placeholder'); 69 // console.log(pattern.test($(this).val())); 70 if(!pattern.test($(this).val()) || $.trim($(this).val()) == '' ){ 71 console.log('NON valid phone!'); 72 $('input[name="phone"]').parent().addClass('has-error'); 73 errorCounter++; 74 } else if (data_pattern == 'true') { 75 // console.log('data-pattern = true'); 76 if ($(this).val().length != data_placeholder.length) { 77 console.log('Phone too short!!!'); 78 $('input[name="phone"]').parent().addClass('has-error'); 79 errorCounter++; 80 } 81 } 82 else{ 83 $(this).parent().removeClass('has-error'); 84 } 85 }); 86 if (errorCounter > 0) { 87 $('.fancy_form_error_text').show(); 88 return false; 89 } else { 90 $('.fancy_form_error_text').hide(); 91 return true; 92 } 93}
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.