尝试将URL参数传递给输入字段(NOT表单字段)

时间:2014-04-08 07:44:19

标签: html forms url input

我已经花了一些时间研究这个问题,无论是在SO还是通过谷歌。但是我找不到任何可以帮助我的东西。这是场景:

我有一个页面(MP),我将人们发送给我的联盟会员(AP)。他们正确地填写AP上的字段非常重要,否则我不会得到记入。因此,我希望我的会员链接(AL)包含传递给AP上的表单的参数。然而,问题在于"形式"在AP上实际上不是表单,而是输入字段的组合。这是AP的一个片段(请记住我无法编辑此代码):

<tbody class="original">
<tr><td colspan="3"><p><strong>* required</strong></p></td></tr>
<tr>
<th width="180"><label for="affiliateID">Affiliate ID</label></th>
<td width="250"><div class="text"><input id="affiliateID" name="affID" class="text"></div></td>
</tr>
<tr>
<th width="180"><label for="txtEmail">Your e-mail address</label></th>
<td width="250"><div class="text"><input id="txtEmail" name="email" class="text"></div></td>
</tr>
<tr>
<td colspan="3">
<input id="submitInfo" class="submit" type="submit" value="Sign-up">
</td>
</tr>
</tbody>

我的问题是,我能否解决并预先填写&#34;字段#affiliateID和#txtEmail通过从MP传递我的网址中的值?我曾试图使用:http://www.APURL.com?affiliateID=AF54728和其他东西,但我根本无法将其用于&#34; prefill&#34;。如果AP使用的是传统的HTML表单,或者我能以某种方式将其包含在链接URL中,那么这是唯一可行的吗?因此AP认识到我想将值传递给他页面上的某个字段?我当时认为可能有办法解决URL中输入的ID。

希望有人可以帮助我。

提前致谢。

1 个答案:

答案 0 :(得分:0)

即使输入字段不是表单元素的一部分,也可以这样做。以下是设置affiliateID字段值的工作示例。

function getQuerystring(key, default_)
{
  if (default_==null) default_=""; 
  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
  var qs = regex.exec(window.location.href);
  if(qs == null)
    return default_;
  else
    return unescape(qs[1]);
}
var inp = document.getElementById("affiliateID");
inp.value = getQuerystring("affiliateID", "no ID given");

更新

我误解了这个问题。这不是您正在谈论的网站,您想知道是否可以使用URL参数更改表单值。这可能。然而,通常情况下,这样的页面的设计方式是它通过查询字符串接受参数。您应该询问网站的所有者,并询问他是否可以通过URL以某种方式传递会员ID。