Предполагаю, что это костыль:)
В форме заказа размещаем скрытый инпут:
При этом нам ведь все таки нужно иметь 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)
Не писать ответ