还是? 有什么不同?(<form method=“link” > or ?

2019-06-17 11:44发布

我看到 ,我们可以这样写:

<form method="link" action="foo.html" >
<input type="submit" />
</form>

做一个“链接按钮”。

但我知道,我们可以这样写:

<a href="foo.html" ><input type="button" /></a>

这也将这样做。

有什么不同? 什么是浏览器的兼容性?

Answer 1:

您链接到该网页不正确。 没有link的价值method在HTML属性。 这将导致形式回退到该方法属性的默认值, get ,其等同于具有一个锚固元件href属性无论如何,因为两者将导致一个HTTP GET请求。 表单的唯一有效的值method在HTML5是“get”和“后”。

<form method="get" action="foo.html">
    <input type="submit">
</form>

这是一样的你的榜样,但有效; 并等价于:

<a href="foo.html">

您应该使用语义来确定实施的形式,它的方式。 由于有用户填写没有表单域,这是不是一个真正的形式,因此你不需要使用<form>得到的效果。

当使用一个例子GET形式是一个搜索框:

<form action="/search">
    <input type="search" name="q" placeholder="Search" value="dog">
    <button type="submit">Search</button>
</form>

上述允许访问者输入自己的搜索查询,而这种定位的元素并不:

<a href="/search?q=dog">Search for "dog"</a>

然而,在提交时都将转到同一页/点击(假设用户在不改变第一个文本字段


顺便说一句,我用下面的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;
}


Answer 2:

第二种情况将不予办理除输入参数的标签内。 它会沿用HREF只有当形式将增加所有输入GET请求字符串。

<form action='http://localhost/?' method='get'><input type="text" name="test"><input type="submit" value="GO"/></form>

<a href='http://localhost/?'><input type="text" name="test"><input type="submit" value="GO"/></a>

将不同的工作



Answer 3:

随着<a name="markname"></a>您可以通过使用URL如滚动该标记的位置进入视野http://example.com/index.html#markname 。 我不认为任何形式或输入这么做。 我认为,对于使用<input type="button" window.location.href='foo.html'/>的JavaScript将必须被激活。 此外, <form>s通常导致线断裂, <a>s没有。



Answer 4:

在功能上的差异。

虽然是的,他们都表现得有点像彼此,还是有一些理由来使用他们意味着什么元素。 在大多数情况下,你失去了一个按钮链接功能; 你无法右键点击并打开一个新的标签或窗口,例如。

考虑语义和规格,以及:所述按钮元件(无论哪个变化使用; <input type="button"><button></button> )的目的是用于通过使用形式。



Answer 5:

所有提到的方法达到同样的效果,除非它们包含多个参数,如:

<input type="button" value="Cancel">
<input type="button" value="Submit">

仅供参考使用:

<form>
<INPUT TYPE='button' onClick="parent.location='location'">
</form>

对于一个按钮链接



文章来源:
or ? What's the difference?