@Muvka

Плоха ли функция eval?

Делаю для себя универсальный обработчик форм. И мне нужно для каждой формы свои цели прописать. Всякие yaCounter или gtag(я плохо в этом разбираюсь). onsubmit не подходит, т.к. формы проверяются на бэкэнде. Хочу сделать дата атрибут, куда буду пихать код целей, а после отправки формы, исполнять этод код с помощью eval. Подскажите, это хороший вариант? Если есть лучше - подскажите.
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
В вашей задаче eval() не нужен, вроде бы.

Вызов событий счётчиков отличается друг от друга только названием события и именем счетчика. Как уже верно заметили в комментарии, данные в backend отправляете ajax'ом, и в обработчике вызова получаете ответ сервера.

По этому ответу бэка можно судить, прошли данные валидацию или нет. И в зависимости от этого, дергать события счетчиков:
// <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
function submitData( formData, goalName, yandex, google) {
  axios.post( '/submitform.php', formData)
  .then( function(response) {
    if (response.ok) {
      yandex.reachGoal( goalName );
      google(goalName, '...' );
    } else {
      // данные не прокатили
    }
  })
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы