【发布时间】:2016-10-10 16:51:33
【问题描述】:
button 与 type="button" 与 type="submit" 之间有区别吗?是否存在功能差异,还是只是为了便于代码阅读的描述性名称?
这与input 不同吗?
【问题讨论】:
标签: html html-input htmlbutton
button 与 type="button" 与 type="submit" 之间有区别吗?是否存在功能差异,还是只是为了便于代码阅读的描述性名称?
这与input 不同吗?
【问题讨论】:
标签: html html-input htmlbutton
<input type="button" />
按钮不会提交表单 - 默认情况下它们不会做任何事情。它们通常与 JavaScript 结合使用,作为 AJAX 应用程序的一部分。
<input type="submit">
按钮将在用户单击它们时提交它们所在的表单,除非您使用 JavaScript 另有指定。
当通过以下代码提交表单时,我们应该使用 type=button 而不是 type=submit 来防止表单提交两次。
@using (Html.BeginForm("View", "Controller", FormMethod.Post, new { id = "signupform" }))
{
//Form elements
}
【讨论】:
它们在向服务器提交表单数据方面有不同的默认行为 该按钮有一个名为“type”的属性,并且可以包含这些值:
提交:具有向服务器提交表单数据的默认行为。如果未指定属性,或者属性动态更改为空值或无效值,则这是默认值。
按钮:按钮具有无默认行为。它可以有与元素事件相关联的客户端脚本,当事件发生时触发。
【讨论】:
按钮的风格化比输入可用于锚标签(链接)更好。
输入可以实现与按钮相同的功能,但设计更丑。
假设输入是老式的,按钮更酷。
【讨论】:
<button type="button"></button> 按钮不会提交表单 - 默认情况下它们不会执行任何操作。 Button 不会自行提交表单。它是一个简单的按钮,用于使用 javascript 执行某些操作,而 Submit 是一种按钮,默认情况下,只要用户单击提交按钮,就会提交表单。
【讨论】:
来自MDN:
type
按钮的类型。可能的值是:
- 提交:按钮将表单数据提交给服务器。 如果未指定属性,则这是默认值,或者如果属性动态更改为空值或无效值。
- reset:该按钮将所有控件重置为其初始值。
- 按钮:按钮没有默认行为。它可以有与元素事件相关联的客户端脚本,这些事件在事件发生时触发。
至于button和input的区别:
button 可以有一个单独的值作为数据,而对于 input,数据和按钮文本始终相同:
<input type="button" value="Button Text"> <!-- Form data will be "Button Text" -->
<button type="button" value="Data">Button Text</button>
button 可以包含 HTML 内容(例如图像),而 input 只能包含文本。
button 可能更容易与 CSS 中的其他 input 控件(如文本字段)区分开来。注意向后浏览器兼容性。
input {
}
button { /* Always works */
}
input[type=button] { /* Not supported in IE < 7 */
}
【讨论】:
onclick事件中返回false。
类型为“button”的按钮不会提交表单,但没有类型或 type=submit(默认)的按钮会提交。 type=submit 的按钮与 type=submit 的输入几乎相同,但按钮可以包含 HTML 内容。
【讨论】: