【问题标题】:Use <a> tag to make a POST使用 <a> 标签进行 POST
【发布时间】:2013-08-06 16:42:47
【问题描述】:

我知道我不能直接通过 标签进行 POST,但我可以将它包装成一个表单,例如:

<form action="theUrl" method="POST">

    <input type="hidden" name="param1" value="key1" />
    <a href="/url1" onclick="submit()">key1</a>

    <input type="hidden" name="param2" value="key2" />
    <a href="/url2" onclick="submit()">key2</a>

</form>

这样,当我点击 url1 时,表单如何以 value='key1' 进行 POST?非常感谢!

【问题讨论】:

  • 这不是问题......这是一个帖子。适当的格式是提出一个问题,然后自己回答……或者找到一个可以作为答案的问题并将其添加为答案。
  • 可能相关question
  • 使用 2 个单独的表格。

标签: html forms post tags


【解决方案1】:

单击任一&lt;a&gt;s 将发布两个密钥。最简单的解决方案是拥有两个&lt;form&gt;s。这里:

<form action="theUrl" method="POST">

    <input type="hidden" name="param1" value="key1" />
    <a href="/url1" onclick="this.parentNode.submit()">key1</a>

</form>

<form action="theUrl" method="POST">

    <input type="hidden" name="param2" value="key2" />
    <a href="/url2" onclick="this.parentNode.submit()">key2</a>

</form>

或者,您可以执行以下操作来提交表单:

<script type="text/javascript">
 function s(x)
 {
   x.parentNode.submit();
 }
</script>

<form action="theUrl" method="POST">

    <input type="hidden" name="param1" value="key1" />
    <a href="/url1" onclick="s(this)">key1</a>

</form>

<form action="theUrl" method="POST">

    <input type="hidden" name="param2" value="key2" />
    <a href="/url2" onclick="s(this)">key2</a>

</form>

【讨论】:

  • submit() 的正确用法是 formObject.submit()。我已经用修复更新了答案。
  • 浏览器报错:this.parentNode.submit is not a function
  • 尝试删除this.,也许会奏效。如果你失败了,看看我的更新。
【解决方案2】:

在标签的 onclick 中调用 js 函数。然后在函数里面提交表单。

    <a href="javascript:void(0);" onclick="submitform()">

    <script type="text/javascript">  
       function submitform()  {
          document.formName.submit();
       }
    </script>
猜你喜欢
  • 1970-01-01
  • 2013-11-22
  • 2011-12-31
  • 1970-01-01
  • 1970-01-01
  • 2016-04-01
  • 2021-03-18
  • 1970-01-01
相关资源
最近更新 更多