Plugin de Validação de jQuery
” mas o jQuery não torna mais fácil escrever o seu próprio plugin de validação?”
Sure, but there are still a lot of sutileties to take care of: You need a standard library of validation methods (such as e-mails, URLs, credit card numbers). Você precisa colocar mensagens de erro no DOM e mostrá-las e escondê-las quando apropriado. Você quer reagir a mais do que apenas um evento de Submissão, como keyup e blur.
você pode precisar de diferentes maneiras de especificar as regras de validação de acordo com o ambiente do servidor que você está usando em diferentes projetos. E afinal de contas, não queres reinventar a roda, pois não?
” mas não existem já uma tonelada de plugins de validação lá fora?”
certo, há um monte de soluções não baseadas em jQuery (que você evitaria desde que você encontrou jQuery) e algumas soluções baseadas em jQuery. Este é um dos mais antigos plugins jQuery (iniciado em julho de 2006) e provou-se em projetos em todo o mundo. Há também um artigo discutindo como este plugin se encaixa o bill of the should-be validation solution.não está convencido? Dê uma olhada neste exemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
|
link não é bom e fácil?
uma única linha de jQuery para selecionar o formulário e aplicar o plugin de validação, mais algumas anotações em cada elemento para especificar as regras de validação.
claro que essa não é a única maneira de especificar regras. Você também não tem que confiar nessas mensagens padrão, mas elas vêm a calhar ao começar a configurar a validação para um formulário.
ligue algumas coisas para olhar para fora ao jogar com a demonstração
- Depois de tentar enviar um formulário inválido, o primeiro elemento inválido é focado, permitindo que o usuário corrija o campo. Se outro campo inválido – que não foi o primeiro – foi focado antes de submeter, esse campo é focado em vez disso, permitindo que o usuário Comece no fundo, se ele ou ela preferir.
- Antes de um campo é marcado como inválido, a validação é preguiçoso: Antes de enviar o formulário pela primeira vez, o usuário pode percorrer campos, sem ficar chato mensagens – eles não vão ficar incomodado antes de ter a chance, na verdade, digite um valor correto
- Depois que um campo é marcado como inválido, é ansiosamente validado: Assim que o usuário tiver digitado o valor necessário, a mensagem de erro é removido
- Se o usuário digitar algo em um não-marcado de campo, e guias/cliques de distância dela (desfocagem do campo), ela é validada – obviamente, o usuário tinha a intenção de entrar em algo, mas não conseguiu inserir o valor correto
Que o comportamento pode ser irritante quando clicar através de demonstrações de validação plugin – ele é projetado para um discreto experiência do usuário, irritando o usuário o mínimo possível com desnecessária de mensagens de erro. Então, quando você experimentar outras demos, tente reagir como um de seus usuários Faria, e ver se o comportamento é melhor então. Se não, por favor, deixe-me saber sobre quaisquer idéias que você pode ter para melhorias!
link API Documentation
provavelmente você está procurando por
link Options para o método validate ()
Se não, leia.
ao longo de toda a documentação, dois termos são usados com muita frequência, por isso é importante que você conheça o seu significado no contexto do plugin de validação:
- método: Um método de validação implementa a lógica para validar um elemento, como um método de E-mail que verifica o formato certo do valor de uma entrada de texto. Um conjunto de métodos padrão está disponível, e é fácil de escrever o seu próprio.
- rule: A validation rule associates an element with a validation method, like “validate input with name” primary-mail “with methods” required “and”email”.
métodos de ‘plugins’ de ligação
Esta biblioteca adiciona três métodos de ‘plugins’ jQuery, sendo o ponto de entrada principal ovalidate
método:
-
validate()
– valida a forma seleccionada. -
valid()
– verifica se o formulário seleccionado ou os elementos seleccionados são válidos. -
rules()
– ler, adicionar e remover regras para um elemento.
ligar os selectores personalizados
Esta biblioteca também estende o jQuery com três selectores personalizados:
-
:blank
– selecciona todos os elementos com um valor em branco. -
:filled
– selecciona todos os elementos com um valor preenchido. -
:unchecked
– selecciona todos os elementos que não estão assinalados.
validador de ligação
o método de validação devolve um objecto de validação que tem alguns métodos públicos que pode usar para activar a validação programaticamente ou alterar o conteúdo do formulário. O objeto validador tem mais métodos, mas apenas aqueles documentados aqui são destinados ao uso.
-
Validator.form()
– valida a forma. -
Validator.element()
– valida um único elemento. -
Validator.resetForm()
– repõe a forma controlada. -
Validator.showErrors()
– mostrar as mensagens especificadas. -
Validator.numberOfInvalids()
– Devolve o número de campos inválidos. -
Validator.destroy()
– destrói esta instância de validação.
Existem alguns métodos estáticos no objecto de validação:
-
jQuery.validator.addMethod()
– adicionar um método de validação personalizado. -
jQuery.validator.format()
– substitui {n} substituições por argumentos. -
jQuery.validator.setDefaults()
– modificar a configuração predefinida para validação. -
jQuery.validator.addClassRules()
– adicionar um método de classe composta.
lista de ligações dos métodos de validação incorporados
é fornecido um conjunto de métodos de validação normalizados:
-
required
– torna o elemento necessário. -
remote
– solicita um recurso para verificar a validade do elemento. -
minlength
– faz com que o elemento requeira um comprimento mínimo dado. -
maxlength
– faz com que o elemento requeira um dado comprimento máximo. -
rangelength
– faz com que o elemento requeira uma dada gama de valores. -
min
– faz com que o elemento requeira um determinado mínimo. -
max
– faz com que o elemento requeira um dado máximo. -
range
– faz com que o elemento requeira uma dada gama de valores. -
step
– faz com que o elemento requeira um dado passo. -
email
– Faz com que o elemento requerem um e-mail válido -
url
– Faz com que o elemento exigir uma url válida -
date
– Faz com que o elemento exigem uma data. -
dateISO
– faz com que o elemento requeira uma data ISO. -
number
– faz com que o elemento requeira um número decimal. - – faz com que o elemento requeira apenas dígitos.
-
equalTo
– requer que o elemento seja o mesmo que outro
alguns outros métodos são fornecidos como add-ons, e estão atualmente incluídos em métodos adicionais.js no pacote de download. Nem todos estão documentados aqui:
-
accept
– faz com que um envio de ficheiros aceite apenas os tipos MIME especificados. -
creditcard
– faz com que o elemento requeira um número de cartão de crédito. -
extension
– faz com que o elemento requeira uma certa extensão de arquivo. -
phoneUS
– validar o número de telefone válido dos EUA. -
require_from_group
– garante que um determinado número de campos de um grupo estão completos.
você pode encontrar o código fonte para todos os métodos adicionais no repositório GitHub.
é possível redefinir a implementação das regras incorporadas usando o $.validator.methods
property
link General Guidelines
a secção das Orientações Gerais fornece uma discussão detalhada do design e das ideias por trás do plugin, explicando por que certas coisas são como são. Ele cobre as características em mais detalhes do que a documentação API, que apenas explica brevemente os vários métodos e opções disponíveis.
Se você decidiu usar o plugin de validação em sua aplicação e quer conhecê-lo melhor, é recomendado que você leia as Diretrizes.
campos de ligação com nomes complexos (parêntesis, pontos)
quando tiver um atributo de nome como o utilizador, certifique-se de colocar o nome entre aspas. Mais detalhes nas Orientações Gerais.
ligação demasiada recursão
outro problema comum ocorre com este código:
1
2
3
4
5
6
7
8
|
|
Isso resulta em um muito-muito-erro de recursão: $(form).submit()
aciona outra rodada de validação, resultando em outra chamada para submitHandler, e pronto, a recursividade. Substitua isso pela forma.submeter (), que desencadeia o evento de envio nativo em vez e não a validação.
Então, o código correto parece um pouco diferente:
1
2
3
4
5
|
|
link A Marketo formulário de inscrição
link A Marketo formulário de inscrição, o passo 2
Baseado em uma antiga versão do marketo.com formulário de inscrição. A validação personalizada foi substituída uma vez por este plugin. Obrigado ao Glen Lipka por contribuir!características notáveis da demonstração:
- visualização de mensagens personalizadas: nenhuma mensagem mostrada para o método necessário, apenas para erros de escrita (como o formato de E-mail errado); um resumo é mostrado no topo (“você perdeu 12 campos. Elas foram destacadas abaixo.”)
- validação remota do campo de E-mail. Tente entrar eg.
- Integração com o masked-input plugin, veja Zip e campos de Telefone e Número de Cartão de Crédito no passo 2
- Um método personalizado para fazer o endereço de cobrança no passo 2 opcional, quando “o Mesmo Endereço da Empresa” é verificada
- Um método personalizado para verificar a senha: Verifica se a senha contém pelo menos um número e um carácter e que tem pelo menos 6 caracteres. Se o usuário borrar o campo com um valor inválido, a entrada é esvaziada e fica em foco novamente.liga o formulário de inscrição do leite rememberthemilk.com (baseado em uma versão mais antiga). A validação personalizada foi substituída com este ‘plugin’. Obrigado à RTM por contribuir!características notáveis da demonstração:
- mensagem Personalizada exibição, com base na tabela original de layout, usando sucesso opção para exibir uma marca de verificação válido campos
- Remoto validação do nome de usuário, para verificar se já está tomada (tentar “Pedro”, “asdf” ou “George”)
link de Um multipart “comprar&vender uma casa” formulário
Contribuído por Michael Evangelista, mostrando um multipart formulário para compra e venda de casas.características notáveis da demonstração:
- Multipart, implementado utilizando o jQuery UI acordeão personalizado e um método para verificar se um elemento está na página atual quando validado
- Integração com o masked-input plugin, veja Telefone e Cep campos
link, Usando remoto de validação para ajudar com s
Características remoto de validação para ajudar o usuário a preencher s.
os recursos Notáveis de demonstração:
- Remoto validação para verificar se o usuário digitou o correto , sem forçá-lo a enviar o formulário pela primeira vez