创建我的第一个表单

web 表单是什么?

web 表单是用户和 web 站点或应用程序之间交互的主要内容之一。它们允许用户输入数据,大多数情况下会将数据发送到 web 服务器进行处理和存储(见后面的章节发送表单数据),或者在客户端使用某种方式立刻更新界面(例如,添加列表中的另一个项目,或者显示或隐藏 UI 功能)。

web 表单是由一个或多个表单控件(有时称为小部件),以及一些有助于构建整个表单的附加元素组成——通常被称为 HTML 表单。这些控件可以是文本字段(单行或多行)、选择框、按钮、复选框或单选按钮,大部分是使用 元素创建的,尽管还有一些其他元素需要学习。

还可对表单控件进行编程,以强制指定输入的格式和值(表单验证),并与文本标签配对,向有视力障碍的用户描述其用途。

设计表单

在开始编写代码之前,最好先退一步,花点时间考虑一下你的表单。设计一个快速的模型将帮助你定义你想要询问用户的正确的数据集。从用户体验(UX)的角度来看,要记住:表单越大,失去用户的风险就越大。保持简单,保持专注:只要求必要的数据。

在构建站点或应用程序时,设计表单是非常重要的一步。这超出了本文的范围,涵盖了表单的用户体验,但是如果你想深入了解这个主题,你应该阅读下面的文章:

杂志《Smashing Magazine》中有很好的关于表单用户体验的文章,或许其中最重要的应该是它们的 Extensive Guide To Web Form Usability。

UXMatters 也是一个非常周到的资源,从基本的最佳实践到复杂的问题如多页表单,都有很好的建议。

在本文中,我们将构建一个简单的联系人表单。让我们做一个粗略的草图。

我们的表单将包含三个文本字段和一个按钮。我们向用户询问他们的姓名、电子邮件和他们想要发送的信息。点击这个按钮将把他们的数据发送到一个 web 服务器。

主动学习:使用 HTML 实现我们的表单

好了,现在我们准备进入 HTML 代码并对表单进行编码。为了构建我们的联系人表单,我们将使用以下 HTML 元素:

form {

/* Just to center the form on the page */

margin: 0 auto;

width: 400px;

/* To see the limits of the form */

padding: 1em;

border: 1px solid #ccc;

border-radius: 1em;

}

div + div {

margin-top: 1em;

}

label {

/* To make sure that all label have the same size and are properly align */

display: inline-block;

width: 90px;

text-align: right;

}

input,

textarea {

/* To make sure that all text field have the same font settings

By default, textarea are set with a monospace font */

font: 1em sans-serif;

/* To give the same size to all text field */

width: 300px;

-moz-box-sizing: border-box;

box-sizing: border-box;

/* To harmonize the look & feel of text field border */

border: 1px solid #999;

}

input:focus,

textarea:focus {

/* To give a little highlight on active elements */

border-color: #000;

}

textarea {

/* To properly align multiline text field with their label */

vertical-align: top;

/* To give enough room to type some text */

height: 5em;

/* To allow users to resize any textarea vertically

It works only on Chrome, Firefox and Safari */

resize: vertical;

}

.button {

/* To position the buttons to the same position of the text fields */

padding-left: 90px; /* same size as the label elements */

}

button {

/* This extra margin represent the same space as the space between

the labels and their text fields */

margin-left: 0.5em;

}

然而,这仅仅是开始,现在是时候深入研究了。表单比我们在这里看到的要强大得多,本指南的其他文章将帮助你掌握其余部分。

概述:Web 表单构建块 下一页

高级主题

如何构建自定义表单控件

通过 JavaScript 发送表单

表单控件的属性兼容性列表

Help improve MDN

Was this page helpful to you?

Yes

No

Learn how to contribute

This page was last modified on ⁨2025年4月27日⁩ by MDN contributors.

View this page on GitHub • Report a problem with this content