如何在javascript中获取值查询字符串并将其放入文本框中

时间:2014-05-14 08:05:52

标签: javascript

我在javascript中有一个查询字符串,如下所示:Default.aspx?7KCN0008-001当我尝试将7KCN0008-001插入文本框时,我得到[object Object]我如何将值放在文本框中就是我拥有的:

function test() {
    var urlParams;
    (window.onpopstate = 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);

        urlParams = {};
        while (match = search.exec(query))
            urlParams[decode(match[1])] = decode(match[2]);
    })();
 $('#txtStockCode').val(urlParams[decode(match[1])]);
}

2 个答案:

答案 0 :(得分:1)

我可能正在咆哮错误的树,但正如您在问题中所写,如果URL类似于Default.aspx?7KCN0008-001,您可以通过此代码获取字符串7KCN0008-001

 query = window.location.search.substring(1);

所以我说你可以把这个字符串放到文本框中

$('#txtStockCode').val(query);

location.search的文件在这里:
http://www.w3schools.com/jsref/prop_loc_search.asp

希望这会有所帮助。

<小时/> 修改

好的,如果查询是7KCN0008-001 SAVSS0.85B 2180 916941-000%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20 917418-060,我想你可以这样做:

HTML:

<input type="text" id="t1">
<input type="text" id="t2">
<input type="text" id="t3">
<input type="text" id="t4">
<input type="text" id="t5">
<input type="text" id="t6">

使用Javascript:

var query = window.location.search.substring(1); // "7KCN0008-001 SAVSS0.85B ...."
var decoded = decodeURI(query);
var ary = decoded.replace(/\s{2,}/g, ' ').split(' '); 
for (var i = 0; i < ary.length; i++) { 
  $("#t"+(i+1)).val(ary[i]);
}

<强>样本 JSfidle在这里:http://jsfiddle.net/naokiota/pH4mB/2/

希望这有帮助。

答案 1 :(得分:0)

我认为你对数据结构感到困惑。首先将它定义为一个Object然后你说它是一个数组。

urlParams = {};

urlParams[decode(match[1])] = decode(match[2]);

你需要找出decode的值(匹配[1])并在.val方法中使用它作为一个数组....

$('#txtStockCode').val(urlParams[decode(match[1])]);