Check hidden field value before assigning a value. | Community
Skip to main content
November 11, 2015
Solved

Check hidden field value before assigning a value.

  • November 11, 2015
  • 1 reply
  • 3206 views

We want to use a master form for landing pages hosted on our own site.  We're able to do this and assign campaign ID, assets and the redirect url as needed with the following code:

<script src="//app-sj05.marketo.com/js/forms2/js/forms2.min.js"></script>

<form id="mktoForm_ourFormID"></form>

<script>

  MktoForms2.loadForm("//app-sj05.marketo.com", "ourID", ourFormID, function(form) {

  // Set values in hidden fields to determine campaign and asset to serve

  form.vals({

  "Campaign_Id__c":"assignedCampaignID",

  "Campaign_Asset__c":"assignedCampaignAsset"

  });

  // Override master redirect URL set in Marketo

  form.onSuccess(function(values, followUpUrl) {

  location.href = "newRedirectURL";

  // Return false to prevent the submission handler continuing with its own processing

  return false;

  });

  });

</script>

The next step is to assign the campaign iD only if it's not already included in the referring url.  So I need some sort of if/then statement that looks at the hidden campaign ID to see if there's a value - and assign a value only if there is not.  I'm not a javascript master by any stretch, and I'm not sure what is the best method for the Marketo API.  Can someone help me with this last bit of if/else?

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by SanfordWhiteman

The code will never work like that.  You would see an error if you looked at your console.

form.setValues({

     "Campaign_Asset__c":"HallmarkAssessTemplate"

});

if( !form.getValues()['Campaign_Id__c'] ) {

     form.setValues({

          "Campaign_Id__c":"701400000014xJ8"

     })

}

1 reply

SanfordWhiteman
Level 10
November 12, 2015

if( !form.getValues()['Campaign_Id__c'] ) {

     // field does not current have a value

}

November 12, 2015

I tried as so, but no luck:

<script src="//app-sj05.marketo.com/js/forms2/js/forms2.min.js"></script>

<form id="mktoForm_1491"></form>

<script>

  MktoForms2.loadForm("//app-sj05.marketo.com", "090-PRB-274", 1491, function(form) {

  form.vals({

                        // Set value in hidden field to determine asset to serve

                       "Campaign_Asset__c":"HallmarkAssessTemplate",

                        // Check for referring url campaign info, if blank set value in hidden field to determine campaign to serve

                       if( !form.getValues()['Campaign_Id__c'] ) {

                             "Campaign_Id__c":"701400000014xJ8"

                       }

                });

  // Override redirect URL set in Marketo

  form.onSuccess(function(values, followUpUrl) {

  location.href = "convercent.staging.wpengine.com/lp/ty-compliance-program-hallmarks-assessment-template";

  // Return false to prevent the submission handler continuing with its own processing

  return false;

  });

  });

</script>

Maybe I'm not putting your script in the right place?

SanfordWhiteman
SanfordWhitemanAccepted solution
Level 10
November 12, 2015

The code will never work like that.  You would see an error if you looked at your console.

form.setValues({

     "Campaign_Asset__c":"HallmarkAssessTemplate"

});

if( !form.getValues()['Campaign_Id__c'] ) {

     form.setValues({

          "Campaign_Id__c":"701400000014xJ8"

     })

}