获取URL参数并使用javascript插入表单操作URL

时间:2009-12-16 17:32:36

标签: javascript

我有一个人们使用会员链接访问的html页面,因此它在网址(http://www.site.com?cmpid=1234&aid=123)中有联属代码。我想将cmpid和help添加到表单操作url中(因此在提交时,它会提交到url /form.aspx但是将cmpid和help添加到结尾,即:form.aspx?cmpid = 1234& aid = 123)。

除了javascript,别无选择。我无法使这个页面php或aspx。

2 个答案:

答案 0 :(得分:2)

window.onload = function() {
  var frm = document.forms[0];
  frm.action = frm.action + location.search;
}

答案 1 :(得分:0)

您可以location.search访问查询字符串。然后你应该能够直接将它附加到表单的动作上,如下所示:

// Get a reference to the form however, such as document.getElementById
var form = ...;

// Get the query string, stripping off the question mark (not strictly necessary
// as it gets added back on below but makes manipulation much easier)
var query = location.search.substring(1);

// Highly recommended that you validate parameters for sanity before blindly appending

// Now append them
var existingAction = form.getAttribute("action");
form.setAttribute("action", existingAction + '?' + query);

顺便说一句,我发现直接修改表单操作的查询字符串可能会出现问题 - 我认为特别是,如果你要发布结果,IE将会删除任何查询。 (这是前一段时间,我不记得确切的因素的组合,但足以说它不是一个好主意。)

因此,可能希望通过动态创建隐藏输入的<form>子元素来执行此操作,以便从查询中对所需的名称 - 值对进行编码。