我希望有人能帮助我弄清楚如何从用户在提交期间在表单上选择的复选框中获取datalayer.push
数据。表单有很多字段,但是我只希望已选中复选框。
这是表格的样子(它有4个复选框)
<div class="form-choice-group ">
<div class="form-check form-check--text-normal ">
<input data-validetta="minChecked[1]" data-vd-parent-up="2" data-vd-message-minChecked="Vali vähemalt 1 teenus" type="checkbox" id="check-grey-0" class="form-check__input" name="teenused[]" value="IT (ITH, Office 365, seadmemajutus, IoT jne)">
<label for="check-grey-0" class="form-check__label ">
<span class="form-check__indicator">
<svg class="icon form-check__icon">
<use xlink:href="/tk-telia-theme/images/icons.svg#check"></use>
</svg>
</span>
<span class="form-check__text ">
IT (ITH, Office 365, seadmemajutus, IoT jne)
</span>
</label>
</div>
</div>
这就是我的数据层的样子
dataLayer.push({
'event' : 'GAEvent',
'eventCategory' : 'Uue Äri/IT kliendi müügivõistlus',
'eventAction' : 'Saada müügivõimalus',
'eventLabel' : $('.form-check__input').val()
});
但是它没有正确提交变量,数据层说eventLabel是未定义的,所以我猜这是错误的
$('.form-check__input').val()
。 最佳答案
您需要检查何时呼叫dataLayer.push
如果在document.ready
之后或在更改时或在表单提交事件上调用该函数。可能情况是,在undefined
函数调用时,复选框的值为dataLayer.push
。
要获取已选中复选框的值,请使用:$('.form-check__input:checked').serialize();