如何使用Javascript从URL参数自动填充文本字段

时间:2012-09-04 18:33:33

标签: javascript

此页面(http://forums.iis.net/t/1153336.aspx)解释了如何正确完成我想要做的事情,除非由于我们系统的限制,我只能输入javascript将此信息提取到文本框中。有人可以解释我如何使用URL中的参数自动填充文本框吗?

4 个答案:

答案 0 :(得分:8)

您可以使用location.search访问网址查询并将其注入文字值

如果您的网址为/page.htm?x=y,则可以使用以下代码设置文本字段的值。 This post告诉您如何从查询字符串中获取值

// See the link above for getUrlParams
var params = getUrlParams();
document.getElementById('myTextFieldId').value = params.x;

请注意,您链接的示例存在http://en.wikipedia.org/wiki/Cross-site_scripting漏洞。为避免这种情况,您必须先将HTML转义为在屏幕上输出

答案 1 :(得分:0)

你应该可以在js

中使用windows.location做类似的事情

http://css-tricks.com/snippets/javascript/get-url-and-url-parts-in-javascript/

答案 2 :(得分:0)

您可以轻松使用this question的答案,使用JavaScript从网址获取参数。然后设置文本框的值,如下所示:

this.form.elements["element_name"].value = 'Some Value';

答案 3 :(得分:0)

如果您想要快速解决方案,您可能会对使用此代码段感兴趣(灵感来自here,但我自己修改过):

function getURLParameter(e) {
  return decodeURI((new RegExp(e + "=(.+?)(&|$)").exec(location.search) || [, ""])[1]);
}

if (getURLParameter("inputKey") === "") {
  console.log("No URL param value found.");
} else {
  document.getElementById("inputBox").value = getURLParameter("inputkey");
}

让我们说你的网址是example.com?inputKey=hello world。如果是这样,使用上面的代码将使用" inputBox"的ID填写输入。用短语" Hello world"。如果网址只是example.com,则不会预先填写该框,而只是表现为没有任何内容(显示占位符等)。