【问题标题】:retrieve url parameter and populate a hidden form field检索 url 参数并填充隐藏的表单字段
【发布时间】:2013-08-15 18:49:51
【问题描述】:

我有一个简单的表单,我想提取一个 url 参数并使用该值填充其中一个隐藏字段。

例如,网址是 www.myurltest.html?placement=xyz

这是我的 js 表单代码。当我加载页面时,值 xyz 没有被填充到隐藏字段中。我检查的方式是在页面刷新后,我检查源代码以查看值是否在 html 中。请让我知道出了什么问题,我也不是专业的开发人员,所以这更具挑战性。

 <script>
 function getParameterByName(name)
 {
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.href);
  if(results == null)
     return "";
  else
 return decodeURIComponent(results[1].replace(/\+/g, " "));
 }
 </script>
<form method="post" action="http://xyz.com" >

<ul><li ><label>First Name:</label><input name="firstName" id="firstName" type='text'     value=""  maxlength='255' tabIndex='1' ></li>

<li ><label>Last Name:</label><input name="lastName" id="lastName" type='text' value=""  maxlength='255' tabIndex='2' /></li>

<li  ><label>Email:</label><input name="email" id="email" type='text' value=""  maxlength='255' tabIndex='3' /></li>

<li ><label>Company Name:</label><input name="name" id="name" type='text' value=""  maxlength='255' tabIndex='4' /></li>
<li>
<input type='submit' foo=en_US value='testtest' name='submit' />
</li>  
</ul>

<input type="hidden" name="placement" id="placement" value=""  />

<script type="text/javascript">
document.getElementById("placement").value = getParameterByName("placement");
</script>
</form>

【问题讨论】:

    标签: forms url parameters


    【解决方案1】:

    该值不会出现在源中。如果您使用 Chrome F12 开发工具,则可以改为检查该值。它似乎对我有用。

    <html>
            <head>
                <script type="text/javascript">
                    function getParameterByName(name)
                     {
                      name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
                      var regexS = "[\\?&]" + name + "=([^&#]*)";
                      var regex = new RegExp(regexS);
                      var results = regex.exec(window.location.href);
                      if(results == null)
                         return "";
                      else
                     return decodeURIComponent(results[1].replace(/\+/g, " "));
                     }
                </script>
            </head>
            <body>
                <form method="post" action="http://xyz.com" >
                <ul>
                    <li><label>First Name:</label><input name="firstName" id="firstName" type='text'     value=""  maxlength='255' tabIndex='1' ></li>
                    <li><label>Last Name:</label><input name="lastName" id="lastName" type='text' value=""  maxlength='255' tabIndex='2' /></li>
                    <li><label>Email:</label><input name="email" id="email" type='text' value=""  maxlength='255' tabIndex='3' /></li>
                    <li><label>Company Name:</label><input name="name" id="name" type='text' value=""  maxlength='255' tabIndex='4' /></li>
                    <li><input type='submit' foo=en_US value='testtest' name='submit' /></li>
                </ul>
                <input type="hidden" name="placement" id="placement" value=""  />
                <script type="text/javascript">
                    document.getElementById("placement").value = getParameterByName("placement");
                </script>
                </form>
            </body>
        </html>
    

    【讨论】:

    • 对不起,我应该指定,但它在脚本标签中,我没有正确复制粘贴
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2019-01-03
    相关资源
    最近更新 更多