Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将多步骤表单中URL中的电子邮件添加到隐藏的电子邮件表单字段?_Javascript_Jquery_Forms_Function_Webflow - Fatal编程技术网

Javascript 如何将多步骤表单中URL中的电子邮件添加到隐藏的电子邮件表单字段?

Javascript 如何将多步骤表单中URL中的电子邮件添加到隐藏的电子邮件表单字段?,javascript,jquery,forms,function,webflow,Javascript,Jquery,Forms,Function,Webflow,我在Webflow中创建了一个包含两个页面的多步骤表单: 步骤1:/开始 步骤2:/开始最后一步 对于get Start,我在标记之前添加了以下代码 <script> Webflow.push(function() { $('form').submit(function() { setTimeout(function() { location.href = 'https://websitedomain.com/get-started-final?email='

我在Webflow中创建了一个包含两个页面的多步骤表单:

步骤1:/开始 步骤2:/开始最后一步

对于get Start,我在标记之前添加了以下代码

<script>
Webflow.push(function() {
  $('form').submit(function() {
    setTimeout(function() {
      location.href = 'https://websitedomain.com/get-started-final?email=' + $('#emailget').val();
    }, 100);
  });
});
</script>

Webflow.push(函数(){
$('form')。提交(函数(){
setTimeout(函数(){
location.href=https://websitedomain.com/get-started-final?email='+$('#emailget').val();
}, 100);
});
});
此页面是表单输入的第一页,只要求输入姓名和电子邮件

现在对于Get Started Final,我要求增加4个字段,但我还想从URL中提取电子邮件,并将其添加到Get Started Final中的隐藏表单字段中

<script>
function getParameterByName(url) {
    if(!url) url = window.location.href;
    var matches = url.match(/[\?|\&]?email=(.+)/)
    if (!matches[1]) return '';
    return decodeURIComponent(matches[1]);
}
Webflow.push(function() {
  $('#emailget').val(getParameterByName('email'));
});
</script>

函数getParameterByName(url){
如果(!url)url=window.location.href;
var matches=url.match(/[\?\\&]?email=(.+)/)
如果(!matches[1])返回“”;
返回组件(匹配[1]);
}
Webflow.push(函数(){
$('#emailget').val(getParameterByName('email');
});
我在“Get Started Final”中有一个非隐藏的电子邮件输入,用于测试代码是否有效,但它没有用电子邮件填充输入

电子邮件输入的ID为emailget。在我确认它确实抓取了电子邮件后,我会将其切换到隐藏


我的代码有什么问题?

这里的问题是,您在函数
getParameterByName
中的
url
参数上应用正则表达式匹配,而不是实际的url本身,如果(!matches[1])没有匹配,则会在
处发生错误:

function getParameterByName(url) {
    if(!url) url = window.location.href;
    var matches = url.match(/[\?|\&]?email=(.+)/)
    if (!matches[1]) return '';
    return decodeURIComponent(matches[1]);
}
我猜您只是想在URL中获得一个特定的参数,因此您的函数可以像下面这样简单:

const getParameterByKey = key => new URLSearchParams(location.search).get(key);
完整代码:

<script>
const getUrlParameterFor = key => new URLSearchParams(location.search).get(key);
Webflow.push(function() {
  $('#emailget').val(getUrlParameterFor('email'));
});
</script>

const getUrlParameterFor=key=>新的URLSearchParams(location.search).get(key);
Webflow.push(函数(){
$('#emailget').val(getUrlParameterFor('email'));
});