我看到我们可以写:
<form method="link" action="foo.html" >
<input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
制作"链接按钮".
但我知道我们可以写:
<a href="foo.html" ><input type="button" /></a>
Run Code Online (Sandbox Code Playgroud)
哪个会做同样的事情.
有什么不同?他们的浏览器兼容性是什么?
Nic*_*nks 23
您链接的页面不正确.HTML中link
的method
属性没有任何价值.这将导致表单回退到方法属性的默认值get
,这相当于具有href
属性的锚元素,因为两者都将导致HTTP GET
请求.method
HTML5中表单的唯一有效值是"get"和"post".
<form method="get" action="foo.html">
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
这与您的示例相同,但有效; 并相当于:
<a href="foo.html">
Run Code Online (Sandbox Code Playgroud)
您应该使用语义来确定实现表单的方式.由于没有用户填写的表单字段,因此这不是一个表单,因此您无需使用<form>
即可获得效果.
何时使用GET
表单的示例是搜索框:
<form action="/search">
<input type="search" name="q" placeholder="Search" value="dog">
<button type="submit">Search</button>
</form>
Run Code Online (Sandbox Code Playgroud)
上面允许访问者输入他们自己的搜索查询,而这个锚元素不会:
<a href="/search?q=dog">Search for "dog"</a>
Run Code Online (Sandbox Code Playgroud)
然而,两者在提交/点击时都会转到同一页面(假设用户没有更改第一个中的文本字段
顺便说一句,我使用以下CSS来获取看起来像按钮的链接:
button,
.buttons a {
cursor: pointer;
font-size: 9.75pt; /* maximum size in WebKit to get native look buttons without using zoom */
-moz-user-select: none;
-webkit-user-select: none;
-webkit-tap-highlight-color: transparent;
}
.buttons a {
margin: 2px;
padding: 3px 6px 3px;
border: 2px outset buttonface;
background-color: buttonface;
color: buttontext;
text-align: center;
text-decoration: none;
-webkit-appearance: button;
}
button img,
.buttons a img {
-webkit-user-drag: none;
-ms-user-drag: none;
}
.buttons form {
display: inline;
display: inline-block;
}
Run Code Online (Sandbox Code Playgroud)