【问题标题】:How to decode a query parameter for an email address如何解码电子邮件地址的查询参数
【发布时间】:2014-07-01 08:09:13
【问题描述】:

我在着陆页上有一个联系表单,当用户填写表单时,信息会通过 URL 传递到第二个着陆页。在第二个登录页面上,我有一个 javascript,它从 URL 中提取名字、姓氏和电子邮件,并将它们插入到相应的字段中。但是,电子邮件会添加到第二个登录页面上的电子邮件字段中,并使用 %40 而不是“@”符号 (bob%40bob.com)。因此,当用户尝试提交表单时,它不会验证。

我知道我需要解码 URI,但我不确定我需要如何将它实现到现有的 javascript 中。下面是我在第二个登录页面上用于解析 URL 并将变量插入表单的 javascript。

<script type="text/javascript">
function getQueryVariable(variable) {
               var query = window.location.search.substring(1);
               var vars = query.split("&");
               for (var i=0;i<vars.length;i++) {
                       var pair = vars[i].split("=");
                       if(pair[0] == variable){return pair[1];}
               }
               decodeURIComponent(vars);
               return(false);

        }



        var firstName = getQueryVariable("firstname");
        var lastName = getQueryVariable("lastname");
        var userEmail = getQueryVariable("email");

        window.onload = function() {
            document.getElementById('field[63]').value=firstName;
            document.getElementById('field[64]').value=lastName;
            document.getElementById('field[62]').value=userEmail;
        }

</script>

表单字段由小部件创建,无需访问代码。

【问题讨论】:

    标签: javascript forms email-validation


    【解决方案1】:

    您正在尝试解码 匹配返回,所以而不是

    if(pair[0] == variable){return pair[1];}
    

    使用

    if(pair[0] == variable){return decodeURIComponent(pair[1]);}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      相关资源
      最近更新 更多