我在目标网页上有一个联系表单,当用户填写表单时,信息通过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>
表单字段由窗口小部件创建,无需访问代码。
答案 0 :(得分:0)
您尝试在返回匹配后解码,而不是
if(pair[0] == variable){return pair[1];}
使用
if(pair[0] == variable){return decodeURIComponent(pair[1]);}