如何解码电子邮件地址的查询参数

时间:2014-05-13 15:00:37

标签: javascript html-form email-validation

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

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

<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>

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

1 个答案:

答案 0 :(得分:0)

您尝试在返回匹配后解码,而不是

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

使用

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