P.when(“jQuery”, “ready”).execute(function($) {
"use strict"; var $subscribeForms = $('.dp-subscribe-form'); $subscribeForms.each(function(){ var $form = $(this); var $elems = {}; $elems.emailInput = $form.find('.dp-subscribe-form-emailInput'); $elems.submitBtn = $form.find('.dp-subscribe-form-sumbit'); $elems.messageWrap = $form.find('.dp-subscribe-form-message'); $elems.messageText = $elems.messageWrap.find('.dp-subscribe-form-message-text'); $elems.failureMsg = $form.attr("data-invalid-email-msg"); var formData = {}; formData[$elems.emailInput.attr('name')] = $elems.emailInput.val(); $elems.emailInput.keypress(function(e) { if(e.which == 13) { //If keypressed was enter, trigger submit e.preventDefault(); $elems.submitBtn.click(); } }); $elems.submitBtn.click(function(event){ testEmail($elems.emailInput.val()) ? $form.submit() : updateMessage.call($elems, {type: "error", copy: $elems.failureMsg}); }); }) function testEmail(email) { var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i; // jshint ignore:line return testEmail.test(email); } function updateMessage(message) { if(message.type === "error") { this.messageWrap .removeClass('dp-subscribe-form-message--success') .addClass('dp-subscribe-form-message--error'); this.messageText.html(message.copy); } else { this.messageWrap .removeClass('dp-subscribe-form-message--error') .addClass('dp-subscribe-form-message--success') this.messageText.html(message.copy); this.emailInput.prop("value", ''); } }
});