0

On the last section of my JS where I'm trying to set the value to the utm parameters. I keep getting: Uncaught TypeError: Cannot set property 'value' of undefined at setCampaign

var defaultHiddenFieldNameValue = "NoData";

function getQueryStringParamValue(strQStrParam) {
    var strURL = document.location.href;
    var strQStrParamValue = "";
    if (strURL.indexOf('?') != -1)
    {
        strQStrParamValue = strURL.substr(strURL.indexOf('?') + 1);
        if (strQStrParamValue.indexOf(strQStrParam) != -1)
    {
        strQStrParamValue = strQStrParamValue.substr(strQStrParamValue.indexOf(strQStrParam));
        strQStrParamValue = strQStrParamValue.substr(strQStrParamValue.indexOf('=') + 1);
        if (strQStrParamValue.indexOf('&') != -1)
        strQStrParamValue = strQStrParamValue.substr(0, strQStrParamValue.indexOf('&'));
        return strQStrParamValue;
    }else{
        strQStrParamValue = defaultHiddenFieldNameValue;
        return strQStrParamValue;
    }
    }else{
        strQStrParamValue = defaultHiddenFieldNameValue;
        return strQStrParamValue;
    }
}

var form = "BMS-CANNA-WP-FORM";          //FORM NAME ON THIS LINE

function setCampaign(){
    var elqForm = document.forms[form];
    //repeat for each field to populate
    elqForm.elements['utmCampaign'].value = getQueryStringParamValue('utm_campaign');
    elqForm.elements['utmSource'].value = getQueryStringParamValue('utm_source');
    elqForm.elements['utmMedium'].value = getQueryStringParamValue('utm_medium');
    elqForm.elements['utmContent'].value = getQueryStringParamValue('utm_content');
    elqForm.elements['utmTerm'].value = getQueryStringParamValue('utm_term');
    }

window.onload = setCampaign;
Drew Todd
  • 11
  • 1
  • 2

1 Answers1

0

Either the form doesn't exist, or some of the elements doesn't exist.

Try:

console.log(document.forms[form])

And if that is not undefined try:

console.log(document.forms[form].elements)

And then check is your form name or element names correct.

Spartacus
  • 429
  • 2
  • 9
  • Oh man well I'm embarrassed I had inconstant naming form my elements. Just as you said. Thanks for your help! – Drew Todd Jul 26 '19 at 21:28
  • Well I also learned something today, I'm in web development for 10 years, and I haven't heard for document.forms yet... – Spartacus Jul 26 '19 at 21:47