【问题标题】:Using URL from email merge to populate web form text box using Java Script使用来自电子邮件合并的 URL 使用 Java Script 填充 Web 表单文本框
【发布时间】:2017-04-07 17:13:18
【问题描述】:

我正在使用 MailChimp 将字段合并到一个 URL 中,以指导人们在我的网站上填写表格。我想用 URL 中的信息预填充文本框。

例如:http://www.sitename.com/page?fname=John&lname=Smith&email=jsmith@email.com

我是这方面的新手,不知道我在这里做错了什么。这是我的核心代码:

<head>

<script>
$.extend({
  getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return $.getUrlVars()[name];
  }
});
</script>

</head>

<body>

    <form id="form_id_name" method="POST" action="/forms/users">

    <label for="fname">First Name:</label>
    <input required="" class="text" id="user_first_name" name="user[first_name]" type="text" />

<script>
$("#user_first_name").val($.getUrlVar("fname"));
</script>  

    <label for="lname">Last Name:</label>
    <input class="text" id="user_last_name" name="user[last_name]" type="text" />

<script>
$("#user_last_name").val($.getUrlVar("lname"));
</script>  

    <label for="email">Email Address:</label>
    <input class="text" id="user_email" name="user[email]" type="email" />

<script>
$("#user_email").val($.getUrlVar("email"));
</script> 

    <input type="submit" name="commit" value="Submit" />

  </form>

</body>

【问题讨论】:

  • 看起来好像您正在使用 jQuery,但我认为您没有正确使用它。 $.extend 返回一个合并两个对象属性的对象。你只有一个对象,不要使用输出的对象。我会让自己更轻松,并使用像 url.js 这样的 URL 解析库。

标签: javascript function parsing urlparse geturl


【解决方案1】:

问题是,正如@Mike McCaughan 所提到的,您没有扩展任何内容。据我所知,您在哪里使用了该功能,您正在尝试创建一个 jquery 函数/插件。试试这个

$.fn.extend({
  getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return $.getUrlVars()[name];
  }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2019-02-11
    相关资源
    最近更新 更多