Предполагаю, что это костыль:)
В форме заказа размещаем скрытый инпут:
При этом нам ведь все таки нужно иметь Email, хоть он и не обязателен для заполнения. Поэтому меняем атрибут name
на custom_email
. В итоге у нас получается такой HTML этого инпута:
Синхронизируем инпуты. Если custom_email
пустой, то вводим фэйковый email из атрибута data-value
$(document.body).on('input', "input[name='user_email']", function(){ var t = $(this); var $email = $("input[name='email']"); if(t.val()){ $email.val(t.val()); }else{ $email.val($email.data("value")); } //console.log($email.val()); });
Но петерь нужно обрабатывать ошибки корректно. Уж если Юзер ввел "фывфыв" в поле custom_email
, то чтобы система его заставила подумать над своим поведением. Для этого вот такая констркуция:
// Переопределяем jQuery addClass() чтобы получить событие смены класса (function(){ //Сохраняем ссылку на стандартный метод jQuery var originalAddClassMethod = jQuery.fn.addClass; //Переопределяем $.fn.addClass = function(){ var result = originalAddClassMethod.apply(this, arguments); //Инициализируем событие смены класса $(this).trigger('cssClassChanged'); return result; } })(); $(document.body).on('cssClassChanged', "input[name='email']", function(){ var t = $(this); if(t.hasClass("error")){ $("input[name='user_email']").addClass("error"); }else{ $("input[name='user_email']").removeClass("error"); } });
Комментарии (0)
Не писать ответ