使用 <a> 锚元素提交表单,不使用 javascript

Posted

技术标签:

【中文标题】使用 <a> 锚元素提交表单,不使用 javascript【英文标题】:Submit a form using <a> anchor element, without javascript 【发布时间】:2013-06-09 07:29:38 【问题描述】:

如何在不使用 javascript 的情况下用链接替换提交按钮?有没有办法将提交属性添加到链接?因为没有“提交”,表单不会通过简单的链接发送。

<form:form action="/getPage" >
     <div class="buttons">

         <a class="link" href=""> 
           <img src="icon.png" />
         </a>

     </div>         
</form:form>

我在应用程序网络中工作,所以如果我使用 javascript,则服务器不会映射链接..

【问题讨论】:

***.com/questions/1367409/… 如果您将 按钮 设为链接,请确保 Google 和其他搜索引擎不会浏览您的页面。您不希望由搜索引擎触发删除链接 真正的问题是:为什么必须使用&lt;a&gt; 来提交表单? &lt;input&gt;&lt;button&gt; 有什么问题?? 【参考方案1】:

还有另一种出路。使用此方法,您可以使用任何元素来提交表单。 下面是一个例子:

<span onclick="$('#submit').trigger('click')" style="cursor:pointer;">
     anything
</span>

添加隐藏提交按钮:

 <input style="display:none;" type="submit" id="submit"/>

这将与实际提交按钮完全相同。

【讨论】:

【参考方案2】:

这样可以达到同样的效果,看起来像&lt;a&gt;

注意:btnbtn-link来自bootstrap

<button class="btn btn-link" type="submit"><img src="icon.png" /></button>

【讨论】:

【参考方案3】:

您不能单独使用&lt;a&gt; 标签提交表单。如果您坚持使用&lt;a&gt; 标签,您需要某种类型的 javascript 来提供帮助:

&lt;a href="#" onclick="$(this).closest('form').submit()"&gt;Submit the Form&lt;/a&gt;

&lt;a href="#" onclick="document.getElementById('form-id').submit()"&gt;Submit the Form&lt;/a&gt;

或超级黑客:

&lt;a href="backendPage.php?param1=yes&amp;param2=no"&gt;Submit the Form&lt;/a&gt;,然后在 backendPage.php 上您可以使用$_GET 请求来处理信息,并将访问者重定向到预期页面。但这是一个可怕的想法哈哈

【讨论】:

你好,伙计,我使用了这个方法,效果很好,但是当我将href值更改为空字符串(href="")时不起作用,你能告诉我#的含义是什么。 ... 嗨@fazkan,href="#whatever" 告诉浏览器更改 URL 中的哈希,这通常意味着不重新加载页面(不包括 Angular 等)。空的href 属性将与指向将重新加载页面的当前页面相同。或者,您可以完全删除 href 属性并使用 CSS cursor:pointer 使鼠标悬停看起来像一个链接。【参考方案4】:

试试这个:

CSS

button 
    background:none!important;
    border:none; 
    padding:0!important;
    /*border is optional*/
    border-bottom:1px solid #444; 

HTML

<button>your button that looks like a link</button>

【讨论】:

以上是关于使用 <a> 锚元素提交表单,不使用 javascript的主要内容,如果未能解决你的问题,请参考以下文章

将类添加到 Wordpress 图像 <a> 锚元素

js实现跳转后滚动条位置不变,高分求助大神

如何在 Flutter web 中使用 <a> 锚元素?

在锚元素之后使用 :after 伪元素 - 浏览器差异

如何从锚标记内提交我的 x 可编辑字段值以及我的表单/提交内容?

使用表单值更改锚标记的 href 并单击新链接