javascript - 如何创建接受字段值作为 URL 参数的 HTML 表单

标签 javascript html

目标是创建一个独立的 HTML 表单,用作为 URL 参数传递的文本预填充字段。

为了测试,使用名为“test”的单个文本区域创建了一个纯 html 文件。当 http://myserver.com/simpleform.html?test=sampletext在地址栏中键入时,作为参数 test 传递的文本不会填充该字段。

我认为将文本预先填充到网络表单中的字段中唯一需要的是知道目标字段的名称。当失败时,我尝试使用一些可以在加载时执行的 Javascript,我在 Cerbrus 提供的另一个答案中找到了这一点:/a/14070223

但是结果没有变化。当我输入 http://myserver.com/simpleform.html#test=sampletext在地址栏中,传递的文本不会出现在字段中。这是我目前拥有的代码:

<!DOCTYPE html>
<html>

<body onload="acceptParam()">

<script>
function acceptParam() {
  var hashParams = window.location.hash.substr(1).split('&'); // substr(1) to remove the `#`
  for(var i = 0; i < hashParams.length; i++){
      var p = hashParams[i].split('=');
      document.getElementById(p[0]).value = decodeURIComponent(p[1]);;
  }
 }
</script>
<center>
<textarea rows="15" name="test" cols="50">

</textarea>
</center>



</body>
</html>

是否可以使用单个独立 HTML 文件创建一个接受字段值作为 URL 参数的 Web 表单?我不需要提交数据,只需使用 URL 中传递的文本填充字段即可。

最佳答案

如果url是“http://myserver.com/simpleform.html?test=sampletext”,你可以这样做:

<!DOCTYPE html>
<html>

<body onload="acceptParam()">
 
<center>
<textarea id='p' rows="15" name="test" cols="50">

</textarea>
</center>


<script>
function acceptParam() {
  var hashParams = window.location.href.substr(1).split('?'); // substr(1) to remove the `#`
      hashParams = hashParams[1].split('&');
      var p = hashParams[0].split('=');
      document.getElementById('p').value = p[1];
 }
</script>


</body>
</html>

关于javascript - 如何创建接受字段值作为 URL 参数的 HTML 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44813287/

相关文章:

javascript - JQuery:在洗牌数组中获取可见li的 "data-value=n"

javascript - 如何创建一个使用随机生成的间隔调用函数的连续循环

html - 有什么方法可以编辑 "https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.5/css/bulma.css"文件吗?

javascript - onkeyup 或 onkeypress 仅在 X 个字符长度之后

javascript - 本地 Passport 身份验证策略提供临时 header

javascript - 淡入淡出过渡而不淡入空白页

jquery - 如何制作图像以便在单击时在同一页面上打开更大的图像(相同的图像)?

javascript - 如何向模板外部的组件添加 Prop

javascript - BX Slider 不会在浏览器窗口大小减小时重新计算宽度

javascript - 将变量注入(inject)字符串 $ 不起作用