1jQuery(document).ready(function ($) { 2 3 // Controllo se esiste bn-send-coupon 4 if(document.querySelector('#bn-send-coupon')){ 5 6 // Ciclo per tutti gli input del form aggiungendo l'evento invalid e dando la classe invalid 7 document.querySelectorAll('#bn-send-coupon input, #bn-send-coupon select').forEach(function(input) { 8 input.addEventListener('invalid', (e) => { 9 const curInput = e.target; 10 curInput.classList.add('invalid'); 11 }); 12 13 input.addEventListener('input', (e) => { 14 const curInput = e.target; 15 if (curInput.checkValidity()) { 16 curInput.classList.remove('invalid'); 17 } 18 }); 19 }); 20 21 // Mi aggancio all'evento submit del form 22 document.querySelector('#bn-send-coupon').addEventListener('submit', function(e) { 23 e.preventDefault(); 24 25 // Recupero il form 26 var form = e.target; 27 28 // Preparo l'url per la chiamata ajax e i dati da inviare 29 var siteurl = WPURLS.siteurl; 30 var ajaxurl = siteurl + '/wp-admin/admin-ajax.php?action=bn_send_coupon'; 31 var formData = new FormData(form); 32 33 // Eseguo la chiamata ajax, mentre la chiamata è in corso cambio il testo del pulsante di submit 34 $.ajax({ 35 type: 'POST', 36 dataType: 'json', 37 url: ajaxurl, 38 data: formData, 39 contentType: false, 40 processData: false, 41 cache: false, 42 43 success: function (data) { 44 console.log(data); 45 46 // Se in data success è true, allora mostro il messaggio di successo in form-notification 47 if(data.success) { 48 form.querySelector('.form-notification').textContent = data.message; 49 50 form.querySelector('.form-notification').classList.remove('error'); 51 form.querySelector('.form-notification').classList.add('success'); 52 form.querySelector('.form-notification').classList.add('show'); 53 54 } else { 55 // Se in data success è false, mostro il messaggio di errore 56 form.querySelector('.form-notification').textContent = data.message; 57 form.querySelector('.form-notification').classList.remove('success'); 58 form.querySelector('.form-notification').classList.add('error'); 59 form.querySelector('.form-notification').classList.add('show'); 60 //console.log(data); 61 } 62 63 }, 64 error: function(data) { 65 // Se la chiamata ha errori, mostro il messaggio di errore 66 console.log(data); 67 form.querySelector('.form-notification').textContent = data.message; 68 form.querySelector('.form-notification').classList.remove('success'); 69 form.querySelector('.form-notification').classList.add('error'); 70 form.querySelector('.form-notification').classList.add('show'); 71 }, 72 complete: function() { 73 setTimeout(function() { 74 form.querySelector('.form-notification').classList.remove('show'); 75 form.querySelector('.form-notification').classList.remove('success'); 76 form.querySelector('.form-notification').classList.remove('error'); 77 form.querySelector('.form-notification').textContent = ''; 78 }, 5000); 79 } 80 81 }); 82 83 }); 84 85 } 86 87 // Controllo se esiste bn-upload-reclamo 88 /*if(document.querySelector('#bn-upload-reclamo')) { 89 document.querySelector('#bn-upload-reclamo').addEventListener('submit', function(e) { 90 e.preventDefault(); 91 92 // Recupero il form 93 var form = e.target; 94 95 // Preparo l'url per la chiamata ajax e i dati da inviare 96 var siteurl = WPURLS.siteurl; 97 var ajaxurl = siteurl + '/wp-admin/admin-ajax.php?action=bn_upload_reclamo'; 98 var formData = new FormData(form); 99 100 // Eseguo la chiamata ajax 101 $.ajax({ 102 type: 'POST', 103 dataType: 'json', 104 url: ajaxurl, 105 data: formData, 106 contentType: false, 107 processData: false, 108 cache: false, 109 success: function(data){ 110 111 // Se in data success è true, allora reindirizzo alla pagina del reclamo 112 if(data.success){ 113 window.location.href = data.redirect; 114 } else { 115 // Se in data success è false, mostro il messaggio di errore 116 console.log(data); 117 } 118 119 }, 120 error: function(data){ 121 // Se la chiamata ha errori, mostro il messaggio di errore 122 console.log(data); 123 } 124 125 }); 126 }); 127 }*/ 128 129});
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.