Adobe DTM и проблема умножения прослушивателей событий - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть форма, и я пытаюсь отслеживать 3 выбора в форме и 3 текстовых поля, используя DTM.Я не могу заставить его работать должным образом?Сначала я попробовал правило, основанное на событиях, с моим тестовым кодом, и выборки работают так, как задумано, пока я не нажму на текстовое поле.Первый раз, когда я нажимаю на текстовое поле, код работает нормально, но потом, когда я нажимаю на любой элемент со слушателем, код работает пропорционально.Например, если я изменю значение в текстовом поле, этот код будет выполнен дважды.Если я затем изменю выбор, этот код будет выполняться 3 раза и т. Д. Я также пробовал этот код в правиле загрузки страницы, и выборки работают нормально, но текстовые поля не работают вообще.Я понятия не имею, как решить эту проблему?Любой совет приветствуется.

var employmentStatusSelect = document.getElementById('mainForm:cont');

 employmentStatusSelect.addEventListener('change',trackEmploymentStatusSelect);

  function trackEmploymentStatusSelect (){
        var esSelVal = event.target.value;
        console.log(" event.target.value ==> " + event.target.value);
        if(esSelVal != ""){
        console.log("employmentStatusSelect ==> " + event.target.value);  
    } else {
       console.log("employmentStatusSelect will not report");
    }
    employmentStatusSelect.removeEventListener('change', trackEmploymentStatusSelect);
};

var startCurrentJobInput = document.getElementById('mainForm:cont2');

startCurrentJobInput.addEventListener('blur', trackStartCurrentJobInput);

function trackStartCurrentJobInput(){
    var scjVal = event.target.value;
    console.log(" event.target.value ==> " + event.target.value);
    if(scjVal != ""){
        console.log("startCurrentJobInput ==> " + event.target.value);  
    } else {
       console.log("startCurrentJobInput will not report");
    }
    startCurrentJobInput.removeEventListener('blur', trackStartCurrentJobInput);
};

1 Ответ

0 голосов
/ 10 декабря 2018

Я понял это.Поскольку это правило, управляемое событиями, код перезагружается при каждом выполнении критерия, поэтому мне приходится каждый раз удалять всех слушателей.

...