Как я могу предотвратить передачу пустого значения UTM при отправке формы? - PullRequest
0 голосов
/ 22 февраля 2019

Я работаю в Pardot, если это имеет значение, но у меня есть некоторый javascript, который будет записывать параметры GA utm в скрытые поля.

К сожалению, если любое из значений будет пустым, оно пропустит это пустое значение,и перезаписать любое существующее значение. Важно, что я могу перезаписывать существующие значения , но только при наличии данных в строке запроса.

Можно ли вместо этого записать значения по умолчанию?Так, например, форма отправляется без utm_source, затем мы пишем Source = "Organic" или что-то подобное.

Вот мой код:

    <script type="text/javascript">
// Parse the URL
function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
    results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
// Give the URL parameters variable names
var source = getParameterByName('utm_source');
var medium = getParameterByName('utm_medium');
var campaign = getParameterByName('utm_campaign');
var campaign = getParameterByName('utm_content');

// Put the variable names into the hidden fields in the form. selector should be "p.YOURFIELDNAME input"
document.querySelector("p.source input").value = source;
document.querySelector("p.utm_medium input").value = medium;
document.querySelector("p.utm_campaign input").value = campaign;
document.querySelector("p.utm_content input").value = content;



</script>

Большое спасибо заваше понимание!

1 Ответ

0 голосов
/ 22 февраля 2019

Поскольку вы устанавливаете значение "", если оно пустое, и поскольку в javascript это значение равно false y, просто поместите оператор if перед каждым из 4 операторов значения:

if (source) document.querySelector("p.source input").value = source;

В полной форме вы говорите, что если значение существует, то заполните элемент значением.В противном случае ничего не делать:

if (source) {
  document.querySelector("p.source input").value = source;
}
...