首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Javascript将URL查询字符串传递到HTML表单域

使用Javascript将URL查询字符串传递到HTML表单域
EN

Stack Overflow用户
提问于 2018-09-11 07:10:46
回答 1查看 419关注 0票数 0

我一直使用PHP将查询字符串传递到表单中,但我希望转到静态站点场景,并需要来自URL的查询数据来填充表单字段。

我的代码没有控制台错误,但是数据没有传递到表单域中。有没有人知道如何在所有现代和传统浏览器中工作?

function getQueryString() {
    var result = {};
    if(!window.location.search.length) return result;
    var qs = window.location.search.slice(1);
    var parts = qs.split("&");
    for(var i=0, len=parts.length; i<len; i++) {
        var tokens = parts[i].split("=");
        result[tokens[0]] = decodeURIComponent(tokens[1]);
    }
    return result;
}

$(document).ready(function() {
    $("#theForm").submit(function(e) {
        //var that = this;
        var qs = getQueryString();
        for(var key in qs) {
            var field = $(document.createElement("input"));
            field.attr("name", key).attr("type","hidden");
            field.val(qs[key]);
            $(this).append(field);
        }
    });
});

https://formpopulate.netlify.com/index.html?name=john&email=john@aol.com https://formpopulate.netlify.com/

EN

回答 1

Stack Overflow用户

发布于 2018-09-11 07:35:21

您应该使用URL seachParams:

var params = (new URL("https://example.com/?name=Jonathan&age=18&test=a%20long%20string")).searchParams;
var name = params.get("name"); console.log(name); // is the string "Jonathan"
var age = parseInt(params.get("age")); console.log(age);// is the number 18
var test = params.get("test"); console.log(test); // is a long string

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52266652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档