【问题标题】:Submit a form with an a link does not work提交带有链接的表单不起作用
【发布时间】:2019-11-08 15:30:16
【问题描述】:

我有这个表格

<form method="POST" action="http://site.test/nodes/destroy" accept-charset="UTF-8" class="form-horizontal" role="form"><input name="_token" type="hidden" value="G2Mk8eZLwPOw5YYvKMSLj7kw6ThR4e2fP7aAWoGt">

    <a href="" onclick="form.submit();">
        <i class="fa fa-trash text-danger"></i>
    </a>


    <input name="ip" type="hidden" value="172.18.29.241">

</form>

当我点击垃圾箱时,它假设提交表单,它没有。

我可以看到页面正在刷新,但它从未到达我的控制器。

我错过了什么?

【问题讨论】:

  • 尝试将href="" 更改为href="#"。你可能需要onclick="document.forms[0].submit();" 而不是你现在拥有的。
  • 好的,现在试试。
  • 只是补充一下,如果我这样做了,它将起作用&lt;button type="submit" class="btn btn-danger"&gt; Delete &lt;/button&gt; - 但目标是使用 a 标签。
  • 为什么不使用提交按钮并将其样式设置为看起来像链接?如果您使用的是 Bootstrap(这些类暗示您可能是),那么样式就很简单了。
  • 要确认,您应该为此使用按钮,而不是锚点。它们有不同的语义

标签: javascript jquery html forms post


【解决方案1】:

简而言之,不要为此使用链接(锚点)。这样做会导致您尝试编写 JavaScript 代码(以及诸如 href="#" 之类的黑客攻击),以尝试在您应该只使用按钮时与使用链接的语义作斗争。

由于您有 Bootstrap,将按钮设置为 看起来像链接是微不足道的。例如:

<button type="submit" class="btn btn-link">
    <i class="fa fa-trash text-danger"></i>
</button>

它保持 HTML 简洁明了,不会引入不必要的复杂性,无需 JavaScript 即可工作,并且更容易被屏幕阅读器等工具访问,并且使用元素的语义而不是对抗它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    相关资源
    最近更新 更多