我有一个表单,我正在尝试使用DTM跟踪表单中的3个选择和3个文本字段。我无法使其正常工作?我首先使用测试代码尝试了基于事件的规则,然后选择按设计工作,直到单击文本字段。第一次单击文本字段时,代码可以正常工作,但是此后任何时候,当我单击带有侦听器的任何元素时,代码都会按比例运行。例如,如果我更改文本字段中的值,则该代码将运行两次。如果随后更改选择,该代码将运行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);
};
答案 0 :(得分:0)
我知道了。由于它是一个事件驱动的规则,因此每次满足规则条件时都会重新加载代码,因此我每次都必须删除所有侦听器。