Javascript 拆分哈希url以填充表单中的文本字段

Javascript 拆分哈希url以填充表单中的文本字段,javascript,forms,url,hash,Javascript,Forms,Url,Hash,我有一个javascript函数,用于拆分参数的url,然后使用找到的参数设置文本字段的值。它工作完美。。。一旦我刷新页面。如何让它在页面加载时填充文本字段 $(function(){ var urlParams = {}; (window.onload = function () { var match, pl = /\+/g, search = /([^&=]+)=?([^&]*)/

我有一个javascript函数,用于拆分参数的url,然后使用找到的参数设置文本字段的值。它工作完美。。。一旦我刷新页面。如何让它在页面加载时填充文本字段

$(function(){   
    var urlParams = {};
    (window.onload = function () {
        var match,
            pl     = /\+/g,
            search = /([^&=]+)=?([^&]*)/g,
            decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
            query  = window.location.search.substring(1);

        urlParams = {};
        while((match = search.exec(query)) !== null)
        urlParams[decode(match[1])] = decode(match[2]);
    })();
    window.onload=function(){
        var nm= urlParams['name'];
        var pn= urlParams['phone'];
        var em= urlParams['email'];
        document.getElementById('txtName').value=nm;
        document.getElementById('txtPhone').value=pn;
        document.getElementById('txtEmail').value=em;
    }
})

有人能帮我吗?

首先,窗口太多了。当DOM准备就绪时,jQuery的$function{}将被激发,这对于您的情况来说已经足够了。然而,我试图重现您的问题,但该功能对我有效。尝试删除window.onloads并告诉我是否有用。也许准备一些JSFIDLE也不错

$(function(){
    var urlParams = {};
    (function () {
        var match,
            pl     = /\+/g,  // Regex for replacing addition symbol with a space
            search = /([^&=]+)=?([^&]*)/g,
            decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
            query  = window.location.search.substring(1);

        while((match = search.exec(query)) !== null)
        urlParams[decode(match[1])] = decode(match[2]);
    })();

    var nm= urlParams['name'];
    var pn= urlParams['phone'];
    var em= urlParams['email'];
    document.getElementById('txtName').innerText=nm;
    document.getElementById('txtPhone').innerText=pn;
    document.getElementById('txtEmail').innerText=em;

})

同样的结果,在点击表单链接之前,我会使用上一页的代码,看看代码是否有问题。我发现了,这肯定是上一页的表单代码。我把它传递错了,我最初使用的是javascript,并通过单击函数window.location.href将其切换为javascript。感谢您的关注,我仍然很感激!我能给你打分吗?