Sc0undRel
@Sc0undRel

Как сделать яваскрипт событие при заполнение формы?

Хочу делать отслеживание события для Google Analytics, которое будет срабатывать при начале заполнения формы и при этом единожды.

То есть, например,
form
input
input
textarea
submit
form


При заполнение любого из полей срабатывает событие. При этом повторное заполнения других или этого же поля уже не надо выполнять событие.
  • Вопрос задан
  • 706 просмотров
Решения вопроса 1
@Mikola-BLR
var firstTime = true;
var nodeList = document.querySelectorAll('input, textarea');

Array.prototype.forEach.call(nodeList, function (node) {
    node.addEventListener('input', doSomething);
});

function doSomething() {
    if (firstTime) {
        // ваш код здесь
        firstTime = false;
    }
}


Если есть инпуты за пределами формы, по нужно указать более точный селектор:
document.querySelectorAll('form input, form textarea');


PS.
Если использовать jQuery:
var firstTime = true;

$('input, textarea').on('input', doSomething);

function doSomething() {
    if (firstTime) {
        // ваш код здесь
        console.log('input'); // <- можно посмотреть, как отрабатывают события input и change
        firstTime = false;
    }
}

Событие input срабатыват сразу, как только мы начинаем что-то набирать, а change - когда мы что-то ввели и нажали за пределами элемента, т.е. у него пропал фокус.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы