我希望有人能帮我弄清楚如何从提交期间用户在表单上选中的复选框中获取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()
});
但它没有正确提交变量,而datalayer表示eventLabel未定义,所以我猜这是错误的$('.form-check__input').val()
。
答案 0 :(得分:1)
您需要检查何时致电dataLayer.push
如果在document.ready
之后或在更改时或在表单submit-event上调用该函数。视情况而定,undefined
函数调用时复选框的值为dataLayer.push
。
要获取已选中复选框的值,请使用:
$('.form-check__input:checked').serialize();