<input type="submit">
值
设置 value 属性
<input type="submit" value="Send Request" />
省略 value 属性
如果你没有指定value
,按钮将会有一个默认标签,由用户代理选择。这个标签很可能是“Submit”或“Submit Query”。以下是在你的浏览器中使用默认标签的提交按钮的示例
<input type="submit" />
其他属性
除了所有<input>
元素共享的属性外,submit
按钮输入还支持以下属性。
formaction
一个字符串,指示要提交数据的 URL。这优先于action
属性在拥有该<input>
的<form>
元素上。
此属性也适用于<input type="image">
和<button>
元素。
formenctype
一个字符串,用于识别将表单数据提交到服务器时要使用的编码方法。有三个允许的值
application/x-www-form-urlencoded
-
这是默认值,它在百分比编码文本(使用
encodeURI()
等算法)后,将表单数据作为字符串发送。 multipart/form-data
-
使用
FormData
API 管理数据,允许将文件提交到服务器。如果你的表单包含任何类型为file
的<input>
元素(<input type="file">
),你必须使用这种编码类型。 text/plain
-
纯文本;主要只在调试时有用,这样你可以轻松地查看要提交的数据。
如果指定,formenctype
属性的值将覆盖拥有表单的action
属性。
此属性也适用于<input type="image">
和<button>
元素。
formmethod
一个字符串,指示将表单数据提交到服务器时要使用的 HTTP 方法;此值将覆盖在拥有表单的表单上给出的任何method
属性。允许的值是
get
-
通过从
formaction
或action
属性给出的 URL 开始构建一个 URL,追加一个问号(“?”)字符,然后追加表单数据,编码方式如formenctype
或表单的enctype
属性所述。然后,使用 HTTPget
请求将此 URL 发送到服务器。此方法适用于仅包含ASCII字符且没有副作用的简单表单。这是默认值。 post
-
表单数据包含在发送到
formaction
或action
属性给出的 URL 的请求主体中,使用 HTTPpost
方法。此方法支持复杂数据和文件附件。 dialog
-
此方法用于指示按钮关闭与输入关联的对话框,并且根本不传输表单数据。
此属性也适用于<input type="image">
和<button>
元素。
formnovalidate
如果存在,则为布尔属性,指定表单在提交到服务器之前不应进行验证。这将覆盖在元素拥有表单的novalidate
属性的值。
此属性也适用于<input type="image">
和<button>
元素。
formtarget
一个字符串,指定一个名称或关键字,指示在提交表单后在哪里显示收到的响应。该字符串必须是浏览上下文的名称(即,标签、窗口或<iframe>
)。此处指定的值将覆盖在拥有此输入的<form>
上给出的任何target
。
除了标签、窗口或内联框架的实际名称外,还可以使用一些特殊的关键字。
_self
-
将响应加载到与包含表单的浏览上下文相同的浏览上下文。这将用接收到的数据替换当前文档。这是未指定时使用的默认值。
_blank
-
将响应加载到一个新的、未命名的浏览上下文。这通常是与当前文档相同的窗口中的一个新标签页,但可能会根据用户代理的配置而有所不同。
_parent
-
将响应加载到当前浏览上下文的父浏览上下文。如果没有父上下文,则其行为与
_self
相同。 _top
-
将响应加载到顶层浏览上下文;这是当前上下文的顶层祖先浏览上下文。如果当前上下文是顶层上下文,则其行为与
_self
相同。
此属性也适用于<input type="image">
和<button>
元素。
使用提交按钮
<input type="submit">
按钮用于提交表单。如果你想创建一个自定义按钮并使用 JavaScript 自定义其行为,你需要使用<input type="button">
,或者更好的是,使用<button>
元素。
如果你选择使用<button>
元素来创建表单中的按钮,请记住这一点:如果<button>
在<form>
内,该按钮将被视为“提交”按钮。因此,你应该养成明确指定哪个按钮是提交按钮的习惯。
一个简单的提交按钮
我们将从创建一个带有简单提交按钮的表单开始。
<form>
<div>
<label for="example">Let's submit some text</label>
<input id="example" type="text" name="text" />
</div>
<div>
<input type="submit" value="Send" />
</div>
</form>
它渲染如下。
尝试在文本字段中输入一些文本,然后提交表单。
提交后,数据名称/值对将发送到服务器。在这种情况下,字符串将是text=usertext
,其中“usertext”是用户输入的文本,已编码以保留特殊字符。数据提交的位置和方式取决于<form>
的配置;有关更多详细信息,请参阅发送表单数据。
向提交按钮添加键盘快捷键
键盘快捷键,也称为访问键和键盘等效项,允许用户使用键盘上的一个键或几个键的组合来触发按钮。要向提交按钮添加键盘快捷键(就像对任何<input>
添加快捷键一样,只要有意义),你可以使用accesskey
全局属性。
在这个示例中,s被指定为访问键(你需要按下s加上你的浏览器/操作系统组合的特定修饰键)。为了避免与用户代理自身的键盘快捷键发生冲突,访问键的修饰键与主机计算机上的其他快捷键的修饰键不同。有关更多详细信息,请参阅accesskey
。
以下是之前示例添加了s访问键的情况。
<form>
<div>
<label for="example">Let's submit some text</label>
<input id="example" type="text" name="text" />
</div>
<div>
<input type="submit" value="Send" accesskey="s" />
</div>
</form>
例如,在 Mac 上的 Firefox 中,按下Control-Option-S将触发“发送”按钮,而 Windows 上的 Chrome 使用Alt+S。
上面示例的问题是,用户将不知道访问键是什么!这尤其如此,因为修饰键通常是非标准的,以避免冲突。在构建网站时,务必以不会干扰网站设计的方式提供此信息(例如,提供一个易于访问的链接,指向有关网站访问键的信息)。向按钮添加工具提示(使用title
属性)也有帮助,虽然这并不是一个完整的可访问性解决方案。
禁用和启用提交按钮
要禁用提交按钮,请在其上指定disabled
属性,如下所示。
<input type="submit" value="Send" disabled />
你可以通过将disabled
设置为true
或false
来在运行时启用和禁用按钮;在 JavaScript 中,这看起来像btn.disabled = true
或btn.disabled = false
。
注意:有关启用和禁用按钮的更多想法,请参阅<input type="button">
页面。
验证
提交按钮不参与约束验证;它们没有要约束的实际值。
示例
我们在上面包含了简单的示例。关于提交按钮,真的没有什么可说的了。这种类型的控件有时被称为“简单按钮”是有原因的。
技术摘要
规范
规范 |
---|
HTML 标准 # submit-button-state-(type=submit) |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
<input>
和实现它的HTMLInputElement
接口。- 表单和按钮
- HTML 表单
<button>
元素- CSS 属性的兼容性