Определить и установить идентификатор и имя формы в скрипте - PullRequest
0 голосов
/ 04 июня 2019

У меня есть форма, которую не технический пользователь может обновить поля формы и имя формы, которое затем автоматически обновляется на целевой странице.

У меня есть дополнительные функции, которые я использую, которые устанавливают параметры utm в скрытых полях, для которых требуется имя формы, и я также проталкиваю URL-адрес формы в скрытом поле, которое использует идентификатор поля.

Я хочу, чтобы имя формы HTML автоматически устанавливалось при загрузке страницы, даже если оно было изменено, и идентификатор поля, который нужно установить из имени поля формы, которое не изменяется.

для этого используется следующее скрытое поле:

<input type="hidden" name="FormURL" id="fe580" value="">

Я хотел получить идентификатор - fe580, установленный на основе имени - FormURL в сценарии eblow, поскольку имя HTML не будет изменено, но идентификатор может зависеть от порядка, в котором находится это скрытое поле.

<script>
  var input = document.getElementById("fe580"); input.value = location.href;
</script>

С именем формы я бы хотел, чтобы это автоматически устанавливалось при загрузке страницы на основе имени формы в случае его изменения. Ниже приведено название формы, которое можно изменить.

Ниже приведен скрипт, который я использую для установки значений UTM.

<script type="text/javascript">

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 = "SYSTEM_WEBFORM_WHITEPAPER";          //FORM NAME ON THIS LINE


function setCampaign(){
  var elqForm = document.forms[form];

  //repeat for each field to populate

elqForm.elements['utm_source'].value = getQueryStringParamValue('utm_source');
elqForm.elements['utm_medium'].value = getQueryStringParamValue('utm_medium');
elqForm.elements['utm_campaign'].value = getQueryStringParamValue('utm_campaign');
elqForm.elements['utm_content'].value = getQueryStringParamValue('utm_content');

    }

window.onload = setCampaign;

</script>  

При загрузке страницы идентификатор скрытого поля и имя формы устанавливаются в правильных местах.

У меня нет доступа к коду формы, потому что он генерируется платформой, в которой маркетолог может построить форму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...