Adobe DTM 和事件侦听器倍增问题

Adobe DTM and Event Listeners Multiplying Issue

我有一个表单,我正在尝试使用 DTM 跟踪表单中的 3 个 select 和 3 个文本字段。我无法让它正常工作?我首先使用我的测试代码尝试了一个基于事件的规则,并且 selects 按设计工作,直到我单击一个文本字段。第一次单击文本字段时,代码工作正常,但此后任何时候,当我单击带有侦听器的任何元素时,代码 运行s 都会按比例显示。例如,如果我更改文本字段中的值,该代码将 运行 两次。如果我然后更改 select,该代码将 运行 3 次等。我还在页面加载规则中尝试过此代码并且 selects 工作正常但文本字段不根本不起作用。我不知道如何解决这个问题?任何建议表示赞赏。

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);
};

我想通了。由于它是一个事件驱动的规则,每次满足规则条件时代码都会重新加载,因此我每次都必须删除所有侦听器。