javascript - 在脚本中检测并设置 id 和表单名称
问题描述
我有一个表单,非技术用户可以更新表单字段和表单名称,然后在登录页面上自动更新。
我使用的附加功能在需要表单名称的隐藏字段中设置 utm 参数,并且我还将表单 URL 推送到使用字段 ID 的隐藏字段上。
我想让 HTML 表单名称在页面加载时自动设置,即使它已更改,并且字段 ID 从不会更改的表单字段名称中设置。
以下隐藏字段用于此目的:
<input type="hidden" name="FormURL" id="fe580" value="">
我想在脚本 eblow 中根据名称 - FormURL 获取 id - fe580 集,因为 HTML 名称不会 cvhange,但 id 可以取决于此隐藏字段所在的顺序。
<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>
在页面加载隐藏字段的 id 和表单名称都设置在正确的位置。
我无权访问表单代码,因为这是由营销人员可以在其中构建表单的平台生成的。
解决方案
推荐阅读
- javascript - 如何将发票值获取到谷歌表
- php - 如何在 laravel 中授权用户?
- vba - 是否可以转换可以在 vbnet 中使用的 vba 代码?
- python - ValueError:int() 的无效文字,基数为 10:'PKL567'
- cassandra-jdbc - cassandra jdbc 的驱动程序
- python - 如何将 s3 amazon 连接到您的 django 项目?
- json - xml 到 json 的转换 - 用于 [[]] 的附加方括号,用于 lineitems 和 line item
- flutter - 是否允许在底页颤动中创建超过 1 个下拉菜单?我收到一个错误
- javascript - 将 react-booking-calendar 的语言环境设置为另一种语言
- apache-kafka - 重启集群或操作系统后的kafka删除所有连接器