1$(function () { 2 $.fn.missingField = function(x) { 3 if (x) { 4 this.addClass('input-missing'); 5 } else { 6 this.removeClass('input-missing'); 7 } 8 } 9 10 var isValidEmail = function(email) { 11 var pattern = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i; 12 return pattern.test(email); 13 } 14 15 var showMessage = function(status, message) { 16 var box = $('.response-message'); 17 box.addClass('response-' + status); 18 box.html(message); 19 box.fadeIn(); 20 } 21 22 var formValidation = function() { 23 var requestForm = $('.request-form'); 24 25 var fields = { 26 adults: $('#request_adults'), 27 children: $('#request_children'), 28 name: $('#request_name'), 29 email: $('#request_email'), 30 phone: $('#request_phone'), 31 comment: $('#request_comment'), 32 confirm: $('#request_confirm') 33 } 34 35 var requestSubmit = $('#request_submit'); 36 var requestSubmitVal = requestSubmit.html(); 37 38 requestSubmit.attr('disabled', true); 39 requestSubmit.html('Kérjük várj...'); 40 41 if (fields.adults.val().length == 0 || parseInt(fields.adults.val()) <= 0) { 42 fields.adults.missingField(true); 43 } else { 44 fields.adults.missingField(false); 45 } 46 47 if (fields.name.val().length == 0) { 48 fields.name.missingField(true); 49 } else { 50 fields.name.missingField(false); 51 } 52 53 if (fields.email.val().length == 0 || !isValidEmail(fields.email.val())) { 54 fields.email.missingField(true); 55 } else { 56 fields.email.missingField(false); 57 } 58 59 if (fields.phone.val().length == 0) { 60 fields.phone.missingField(true); 61 } else { 62 fields.phone.missingField(false); 63 } 64 65 if (fields.confirm.is(':checked') === false) { 66 fields.confirm.missingField(true); 67 } else { 68 fields.confirm.missingField(false); 69 } 70 71 if ($('.input-missing', requestForm).length == 0) { 72 $.ajax({
73 url: requestForm.attr('action'), 74 async: false, 75 data: requestForm.serialize(), 76 dataType: 'json', 77 method: requestForm.attr('method'), 78 success: function(resp) { 79 showMessage(resp.status, resp.message); 80 if (resp.status == 'error') { 81 requestSubmit.attr('disabled', false); 82 requestSubmit.html(requestSubmitVal); 83 } else { 84 requestSubmit.html('Elküldve'); 85 } 86 }, 87 error: function() { 88 showMessage('error', 'Hiba történt az űrlap feldolgozása közben.'); 89 requestSubmit.html('Kérjük, próbáld meg késÅbb'); 90 } 91 }); 92 } else { 93 requestSubmit.attr('disabled', false); 94 requestSubmit.html(requestSubmitVal); 95 } 96 } 97 98 $('body').on('change', '#request_children', function() { 99 var childrenNum = parseInt($(this).val()); 100 var childrenInfo = $('.children-info'); 101 102 if (childrenNum > 0) { 103 childrenInfo.fadeIn(); 104 childrenInfo.removeClass('hidden'); 105 } else { 106 childrenInfo.fadeOut(); 107 childrenInfo.addClass('hidden'); 108 } 109 110 return false; 111 }); 112 113 $('body').on('submit', '.request-form', function() { 114 formValidation(); 115 return false; 116 }); 117});
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.