Articles

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
<form class="cmxform" method="get" action="">
<fieldset>
<legend>Please provide your name, email address (won't be published) and a comment</legend>
<p>
<label for="cname">Name (required, at least 2 characters)</label>
<input name="name" minlength="2" type="text" required>
</p>
<p>
<label for="cemail">E-Mail (required)</label>
<input type="email" name="email" required>
</p>
<p>
<label for="curl">URL (optional)</label>
<input type="url" name="url">
</p>
<p>
<label for="ccomment">Your comment (required)</label>
<textarea name="comment" required></textarea>
</p>
<p>
<input class="submit" type="submit" value="Submit">
</p>
</fieldset>
</form>
<script>
$("#commentForm").validate();
</script>

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
$("#myform").validate({
submitHandler: function(form) {
// some other code
// maybe disabling submit button
// then:
$(form).submit();
}
});

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
$("#myform").validate({
submitHandler: function(form) {
form.submit();
}
});

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

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *