Apologies, I'm still new to writing script.
If I wanted to make my form picklist values dynamic via javascript what would that look like?
We built one that does it for all the field labels and submit button, however it's not picking up the div id tags on our rich text fields, and I also haven't been able to create any logic with the picklist field values.
Another idea I had was leaving the picklist field values off the form and instead try to build logic into the below script but I don't know where to add it.
If text token {{my.program_language}} = french then vallues populate with french values and english stored, then continue for other languages.
The program language is set in a text token.
<script>
MktoForms2.whenReady(function(form) {
var formEl = form.getFormElem()[0],
selectEl = formEl.querySelector("#Territory__c");
(IF {{my.program_language}} = English)
var optionList = [
{
label: "English1",
value: "ENG1"
},
{
label: "English2",
value: "ENG2"
},
{
label: "English3",
value: "ENG3"
}
];
optionList.forEach(function(optionDesc) {
var newOption = new Option();
newOption.text = optionDesc.label;
newOption.value = optionDesc.value;
selectEl.add(newOption);
});
(IF {{my.program_language}} = French
var optionList = [
{
label: "French1",
value: "ENG1"
},
{
label: "French2",
value: "ENG2"
},
{
label: "French3",
value: "ENG3"
}
];
optionList.forEach(function(optionDesc) {
var newOption = new Option();
newOption.text = optionDesc.label;
newOption.value = optionDesc.value;
selectEl.add(newOption);
});
});</script>
JS if looks like this:
if( condition ) {
// do something
}
Therefore you could use your {{my.token}}, provided the value is allowed within a JS double-quoted string:
if( "{{my.program_language}}" == "English" ) {
// do something
}
However I’d be very unlikely to do it this way. It’s always better to keep JS code out of your LPs and templates.
Instead, store the code in a separate .js file you put in Design Studio. Include a different src based on the {{my.token}}, as shown in my earlier post.