function validate(what, text) { if (what == 'quantity') { var re = /^[0-9]{1,2}$/; } else if (what == 'email') { var re = /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/; } else if (what == 'delivery_address') { var re = /^(?:.*(?:\r\n|\n|\r)){2,}/; } else if (what == 'billing_address') { if (text == '') { return true; } var re = /^(?:.*(?:\r\n|\n|\r)){2,}/; } else { var re = /^notpermitted$/; } return re.test(text); } $(document).ready(function () { $("#quantity_exclamation").hide(); $("#email_exclamation").hide(); $("#modal-save").click(function() { // Validation Code var is_valid = true; $("#success_message").addClass('is-hidden'); $("#error_message").addClass('is-hidden'); if (!validate('quantity',$('#quantity').val())) { $('#quantity_errormsg').html('Ungültige Anzahl'); $("#quantity").addClass("is-danger"); $("#quantity_exclamation").show(); is_valid = false; } else { $('#quantity_errormsg').html(''); $("#quantity").removeClass("is-danger"); $("#quantity_exclamation").hide(); } if (!validate('email',$('#email').val())) { $('#email_errormsg').html('Ungültige E-Mail Adresse'); $("#email").addClass("is-danger"); $("#email_exclamation").show(); is_valid = false; } else { $('#email_errormsg').html(''); $("#email").removeClass("is-danger"); $("#email_exclamation").hide(); } if (!validate('delivery_address',$('#delivery_address').val())) { $('#delivery_address_errormsg').html('Ungültige Adresse'); $("#delivery_address").addClass("is-danger"); is_valid = false; } else { $('#delivery_address_errormsg').html(''); $("#delivery_address").removeClass("is-danger"); } if (!validate('billing_address',$('#billing_address').val())) { $('#billing_address_errormsg').html('Ungültige Adresse'); $("#billing_address").addClass("is-danger"); is_valid = false; } else { $('#billing_address_errormsg').html(''); $("#billing_address").removeClass("is-danger"); } if (!($('#accept_terms').is(':checked'))) { $('#accept_terms_errormsg').html('Bitte zustimmen'); $("#accept_terms_label").addClass("has-text-danger"); is_valid = false; } else { $('#accept_terms_errormsg').html(''); $("#accept_terms_label").removeClass("has-text-danger"); } if (!(is_valid)) { return; } $.ajax({ url: "order", type: "POST", //send it through post method dataType: "json", data: JSON.stringify({ "quantity": $('#quantity').val(), "email": $('#email').val(), delivery_address: $("#delivery_address").val(), billing_address: $("#billing_address").val() } ), success: function(response) { console.log("SUCCESS"); console.log(response); $("#modal").removeClass("is-active"); $("#success_message").removeClass("is-hidden"); }, error: function(xhr) { console.log("ERROR"); console.log(xhr); $("#modal").removeClass("is-active"); $("#error_message").removeClass("is-hidden"); } }); }); $("#modal-close").click(function () { $("#modal").removeClass("is-active"); window.location.replace("/"); }); function callback() { console.log("Callback Funktion wird aufgerufen"); $('#quantity').focus().select(); } setTimeout(callback, 10); });