В вашей задаче 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 {
// данные не прокатили
}
})
}