Посмотрите вывод консоли с отображением выполняемых событий в Яндекс.Метрике
https://karedesign.ee/ru/product/box-zebra?_ym_debug=1
Если нажать "В корзину" и нажать на кнопку "Продолжить", то запускается обработчик события:
$("#telefon-submit").click(function(event){
Далее происходит проверка введённых данных:
if(/^(?=.*[0-9])[0-9 \(\)\+-]+$/i.test(document.getElementById('phone').value))
submitForm();
else
$("#phone").css("border", "2px solid red");
Если в поле ничего не вводить или ввести цифры, то почему одновременно срабатывают оба условия TRUE и False?
То есть и submitForm(); срабатывает и Yandex Metrika получает событие
yaCounter45870459.reachGoal('add-telefon');
и одновременно поля выделяются красным?
$("#phone").css("border", "2px solid red");
Вот кусок кода, о котором идет речь:
<script>
$("#telefon-submit").click(function(event){
// cancels the form submission
event.preventDefault();
if(/^(?=.*[0-9])[0-9 \(\)\+-]+$/i.test(document.getElementById('phone').value))
submitForm();
else
$("#phone").css("border", "2px solid red");
});
function submitForm(){
// Переменные с данными из формы
var phone = $("#phone").val();
$.ajax({
type: "POST",
url: "sendmail.php",
data: "phone="+ phone + "&product="+ location.href,
success : function(text){
if(text == "success"){
formSuccess();
}
}
});
}
function formSuccess(){
yaCounter45870459.reachGoal('add-telefon'); //Yandex Metrika
}
</script>