2010-11-26 99 views
98

我想提交表格。但我不会使用提交类型的输入按钮,而是使用a链接的基本方式。使用正常链接提交表格

下图显示了原因。我正在使用图像链接来保存/提交表单。因为我有图像链接的标准css标记,所以我不想使用输入提交按钮。

我尝试将onClick =“document.formName.submit()”添加到a元素,但我更喜欢html方法。

alt text

任何想法?

+3

使用按钮和CSS它来显示图像或使用JavaScript,有进行简单的没有真正的方法href提交没有javascript的表单。 – 2010-11-26 15:22:36

+0

我第二,不幸的是这些不是一个简单的方法W/O javascript – benhowdle89 2010-11-26 15:23:27

+3

你做这个的理由听起来像一个虚假的经济。最好只是提出一个标准的CSS来提交按钮,并按照设计使用的方式使用表单。这里有一堆按钮css技术描述:http://www.tripwiremagazine.com/2009/06/24-essential-submit-button-enhancements.html – dnagirl 2010-11-26 15:43:02

回答

141

两种方式。可以创建一个按钮并对其进行设置,使其看起来像使用css的链接,或创建链接并使用onclick="form.submit();"

+43

Aaaaaaaand这里有一个关于如何将按钮设置为链接的参考:http://stackoverflow.com/questions/1367409/how-to-make-button-look-like-a-link – flipchart 2013-07-11 12:23:51

+3

请注意,`form.submit()`不会在没有JavaScript的情况下工作 – baptx 2016-08-11 22:46:57

+2

@baptx即使是旧的智能手机已启用javascript – 2016-10-22 18:41:23

9

您正在使用的图片来提交..所以你可以简单地使用type="image"输入“按钮”:

<input type="image" src="yourimage.png" name="yourinputname" value="yourinputvalue" /> 
76

你不能真正做到这一点没有某种形式的脚本给我所知。

<form id="my_form"> 
<!-- Your Form -->  
<a href="javascript:{}" onclick="document.getElementById('my_form').submit(); return false;">submit</a> 
</form> 

来自Here的示例。

3

使用:

<input type="image" src=".."/> 

或:

<button type="send"><img src=".."/> + any html code</button> 

再加上一些CSS

23

只是造型的<input type="submit" class="linkButton" />喜欢这个工作对我来说:

.linkButton { 
 
    background: none; 
 
    border: none; 
 
    color: #0066ff; 
 
    text-decoration: underline; 
 
    cursor: pointer; 
 
}
<input type="submit" class="linkButton" />

在Chrome,IE 7-9测试,火狐

-1

当然,存在与纯HTML无解提交一个表单的链接(a)标签。标准的HTML只接受按钮或图像。正如其他一些合作者所说的,可以使用按钮模拟链接的外观,但我想这不是问题的目的。

恕我直言,我相信建议和接受的解决方案不起作用。

我已经在窗体上测试过它,浏览器没有找到对窗体的引用。

所以有可能使用一行JavaScript解决它,使用this对象,该对象引用需要提交的被单击的元素(它是表单的子节点)。所以this.parentNode是窗体节点。在它以这种形式调用submit()方法之后。从整个文档中找到正确的表单并不是必要的研究。

<form action="http://www.greatsolutions.com.br/indexint.htm"     
    method="get"> 
    <h3> Enter your name</h3> 
    First Name <input type="text" name="fname" size="30"><br> 
    Last Name <input type="text" name="lname" size="30"><br> 
    <a href="#" onclick="this.parentNode.submit();"> Submit here</a> 
</form> 

假设我用我自己的名字输入:

Filled form

我在形式方法属性使用get,因为它可以看到在加载页面的URL的参数是否正确提交后。

http://www.greatsolutions.com.br/indexint.htm?fname=Paulo&lname=Buchsbaum 

此解决方案显然适用于接受onclick事件或某些类似事件的任何标签。

this是一个很好的选择,可以将event variable(可用于所有主流浏览器和IE9以上版本)的上下文一起恢复,可以直接使用或作为参数传递给函数。

在这种情况下,请使用属性target替换符合a标记的行,该标记指示已启动事件的元素。

<a href="#" onclick="event.target.parentNode.submit();"> Submit here</a> 
0

可以使用 的OnClick = “的document.getElementById( 'formID_NOT_NAME')。提交()”