Elementos e atributos de formulários em HTML5 proporcionam um grau de marcação semântica maior que HTML4 e remove grande parte da tediosa necessidade mexer com scripts e estilos que era necessária em HTML4. As características dos formulários em HTML5 proporcionam uma melhor experiência para usuários por tornarem formulários mais consistentes entre diferentes sites e dar um feedback imediato ao usuário sobre a entrada de dados. Eles também oferecem essa experiência para usuários que possuem scripts desabilitados em seus navegadores.
Este tópico descreve itens novos ou modificados que são suportados por Gecko/Firefox, versão 4 ou mais recente.
O elemento <input>
O elemento
tem novos valores para o atributo <input>
type
.
search
: O elemento representa um campo de entrada de pesquisa. Quebras de linha são automaticamente retiradas do valor de entrada, mas nenhuma outra sintaxe é aplicada.tel
: O elemento representa um controle para edição de um número telefônico. Quebras de linha são automaticamente retiradas do valor de entrada, mas nenhuma outra sintaxe é aplicada, porque números telefônicos variam muito dependendo do país em que se encontra. Você pode usar atributos comopattern
emaxlength
para restringir valores de entrada.url
: O elemento representa um controle para edição de uma URL. Quebreas de linha e espaços em branco à esquerda e direita são automaticamente retirados do valor de entrada.-
email
: O elemento representa um endereço de email. Quebras de linha são automaticamente retiradas do valor de entrada. Um email inválido até pode ser colocado, mas o campo de entrada só aceitará se ele respeitar o formato da ABNF1*( atext / "." ) "@" ldh-str 1*( "." ldh-str )
ondeatext
é definido em RFC 5322 section 3.2.3, eldh-str
é definido em RFC 1034 section 3.5.
O elemento <input>
também tem novos atributos:
list
: O ID de um elemento<datalist>
cujo conteúdo, elementos<option>
, e são usados como dicas e mostrados como sugestões no campo de entrada.pattern
: Uma expressão regular que o valor de controle é comparado, que podem ser usados com valorestype
detext
,tel
,search
,url
, eemail
.formmethod
: Uma string indicando qual método HTTP (GET or POST) deve ser usado quando enviado; ele substitui omethod
do elemento<form>
, se definido. Oformmethod
só aplica quando otype
éimage
ousubmit
.x-moz-errormessage
: Uma string que é mostrada como uma mensagem de erro quando o a validação falha. Esta é uma extensão Mozilla, e não é padrão.
O elemento <form>
O elemento <form>
possui um novo atributo:
novalidate
: Este atributo previne o formulário de ser validado antes de ser enviado.
O elemento <datalist>
O elemento <datalist>
representa a lista de elementos <option>
to suggest when filling an <input>
field.
Você pode usar o atributo list
em um elemento <input>
para ligar um específico campo de entrada com um específico elemento <datalist>
.
O elemento <output>
O elemento
representa o resultado de um cálculo.<output>
Você pode usar o atributo for
para especificar uma relação entre o elemento
e outros elementos no documento que afetam o resultado do cálculo (por exemplo, como entradas ou parâmetros). O valor do atributo <output>
for
é uma lista de IDs separados por espaço de outros elementos.
Gecko 2.0 (mas não necessariamente outras engines de navegador) suportasupports defining custom validity constraints e mensagens de erro de elementos <output>
, e portanto aplica as pseudo-classes CSS :invalid
, :valid
, :-moz-ui-invalid
, e :-moz-ui-valid
a eles. Isso pode ser útil em situações quando o resultado calculadoThis can be helpful in situations where the calculated result violates a business rule, but no specific input value does (for example, "The total of percentages must not exceed 100").
O atributo placeholder
O atributo placeholder
nos elementos
e <input>
fornecem uma dica para o usuário do que pode ser inserido no campo. O texto do placeholder não pode conter caracteres de quebra de linha.<textarea>
O atributo autofocus
O atributo autofocus
permite você especificar um campo de formulário que será focado automaticamente quando a página carregar. No documento, apenas um campo pode ter o atributo autofocus, que é um booleano. Este atributo pode ser aplicado aos seguintes elementos:
, <input>
, <button>
, and <select>
<textarea>
. A única exceção é que o atributo autofocus não pode ser aplicado a um elemento <input>
caso seu atributo type
seja hidden.
The label.control DOM property
The HTMLLabelElement
DOM interface provides an extra property, in addition to the properties that correspond to the HTML
element attributes. The control property returns the labeled control, that is, the control that the label is for, which is determined by the <label>
for
attribute (if it is defined) or by the first descendant control element.
Constraint Validation
HTML5 provides syntax and API items to support client-side validation of forms. While this functionality does not replace server-side validation, which is still necessary for security and data integrity, client-side validation can support a better user experience by giving the user immediate feedback about input data.
If the title
attribute is set on the <input>
element, that string is displayed in a tooltip when validation fails. If the title
is set to the empty string, no tooltip is displayed. If the title
attribute isn't set, the standard validation message (as specified by the x-moz-errormessage
attribute or by calling the setCustomValidity()
method) is displayed instead.
<button>
elements in a form; to style a button based on the validity of the associated form, use the :-moz-submit-invalid
pseudo-class.HTML Syntax for Constraint Validation
The following items in HTML5 syntax can be used to specify constraints on form data.
- The
required
attribute on the<input>
,<select>
, and<textarea>
elements indicates that a value must be supplied. (On the<input>
element,required
applies only in conjunction with certain values of thetype
attribute.) - The
pattern
attribute on the<input>
element constrains the value to match a specific regular expression. - The
min
andmax
attributes of the<input>
element constrain the minimum and maximum values that can be entered. - The
step
attribute of the<input>
element (when used in combination with themin
andmax
attributes) constrains the granularity of values that can be entered. A value that does not correspond an allowed value step does not validate. - The
maxlength
attribute of the<input>
and<textarea>
elements constrains the maximum number of characters (in Unicode code points) that the user can enter. - The values
url
andemail
for thetype
constrain the value to being a valid URL or e-mail address, respectively.
In addition, you can prevent constraint validation by specifying the novalidate
attribute on the <form>
, or the formnovalidate
attribute on the <button>
element and on the <input>
element (when type
is submit
or image
). These attributes indicate that the form is not to be validated when it is submitted.
Constraint Validation API
The following DOM properties and methods related to constraint validation are available to client-side scripts:
- On
HTMLFormElement
objects, thecheckValidity()
method, which returns true if all of this form element's associated elements that are subject to constraint validation satisfy their constraints, and false if any do not. - On form-associated elements:
willValidate
property, which is false if the element has constraints that are not satisfied.validity
property, which is aValidityState
object representing the validity states that the element is in (i.e., constraint failure or success conditions).validationMessage
property, which is a message describing any constraint failures that pertain to the element.checkValidity()
method, which returns false if the element fails to satisfy any of its constraints, or true otherwise.setCustomValidity()
method, which sets a custom validation message, allowing for constraints to be imposed and validated beyond those that are predefined.