O que é a validação discreta do jQuery?


148

Eu sei o que é o plugin de validação do jQuery. Eu sei que a biblioteca de validação discreta do jQuery foi feita pela Microsoft e está incluída na estrutura do ASP.NET MVC. Mas não consigo encontrar uma única fonte online que explique o que é. Qual é a diferença entre a biblioteca padrão de validação do jQuery e a versão "discreta"?


2
a validação sem obstruções adicionará atributos data-val -... no HTML, para que você possa ler a validação mesmo na fonte HTML.
Preben Huybrechts

3
Acredito que a resposta para sua pergunta seja explicada aqui: bradwilson.typepad.com/blog/2010/10/… Ele explica a diferença entre o que acontece quando o Discreto está ativado ou desativado.
Tommy

Respostas:


123

Brad Wilson tem alguns ótimos artigos sobre validação discreta e ajax discreta .
Também é mostrado muito bem neste vídeo do Pluralsight na seção "AJAX e JavaScript".

Basicamente, é simplesmente a validação Javascript que não polui seu código-fonte com seu próprio código de validação . Isso é feito usando data-atributos em HTML.


Você pode nos dizer as melhorias feitas no mvc3 para validações sem obstruções?
Wwcdwdcw

O link para o vídeo está quebrado.
Misha Moroshko 17/03/2019

Obrigado @MishaMoroshko por apontar isso. Não consegui encontrar nenhuma alternativa no Pluralsight por enquanto, então removi o link. Vou editar a postagem novamente assim que tiver um substituto.
BERTL

Alguns exemplos de código seriam bons. Como sua resposta não é realmente tão útil, a maioria das pessoas que vem aqui procurando soluções rápidas e exemplos de código, não links para artigos, elas podem sofrer interrupções com o tempo, geralmente são boas como referência depois de ver o exemplo de código. Eu prefiro as próximas 2 respostas.
Owen

107

Com a maneira discreta:

  • Você não precisa chamar o método validate ().
  • Você especifica requisitos usando atributos de dados (data-val, data-val-required, etc.)

Exemplo de validação de Jquery :

<input type="text" name="email" class="required">
<script>
        $(function () {
            $("form").validate();
        });
</script>

Jquery Validar Exemplo Discreto :

<input type="text" name="email" data-val="true" 
data-val-required="This field is required.">  

<div class="validation-summary-valid" data-valmsg-summary="true">
    <ul><li style="display:none"></li></ul>
</div>

4
Obrigado, eu estava tentando Ctrl-F para encontrar a chamada valdiate () em algum código no qual eu tinha que trabalhar. Queria saber por que eu não poderia encontrá-lo
bio595

2
Sim, "discreto" parece ser um eufemismo para "desconhecido" aqui.
ReactingToAngularVues

18

Para esclarecimento, aqui está um exemplo mais detalhado demonstrando a validação de formulário usando a validação jQuery discreta.

Ambos usam o seguinte JavaScript com jQuery:

  $("#commentForm").validate({
    submitHandler: function(form) {
      // some other code
      // maybe disabling submit button
      // then:
      alert("This is a valid form!");
//      form.submit();
    }
  });

As principais diferenças entre os dois plugins são os atributos usados ​​para cada abordagem.

Validação jQuery

Basta usar os seguintes atributos:

  • Conjunto necessário, se necessário
  • Defina o tipo para a formatação correta (email, etc.)
  • Defina outros atributos, como tamanho (comprimento mínimo, etc.)

Aqui está o formulário ...

<form id="commentForm">
  <label for="form-name">Name (required, at least 2 characters)</label>
  <input id="form-name" type="text" name="form-name" class="form-control" minlength="2" required>
  <input type="submit" value="Submit">
</form>

Validação jQuery Discreta

Os seguintes atributos de dados são necessários:

  • data-msg-required = "Isso é necessário."
  • data-regra-exigida = "verdadeiro / falso"

Aqui está o formulário ...

<form id="commentForm">
  <label for="form-x-name">Name (required, at least 2 characters)</label>
  <input id="form-x-name" type="text" name="name" minlength="2" class="form-control" data-msg-required="Name is required." data-rule-required="true">
  <input type="submit" value="Submit">
</form>

Com base em um desses exemplos, se os campos de formulário necessários foram preenchidos e atendem aos critérios de atributo adicionais, uma mensagem será exibida notificando que todos os campos de formulário são validados. Caso contrário, haverá um texto próximo aos campos do formulário incorreto que indica o erro.

Referências: - Validação do jQuery: https://jqueryvalidation.org/documentation/


7

Validação de jQuery O Native Unobtrusive é uma coleção de extensões auxiliares do ASP.Net MVC HTML. Eles fazem uso do suporte nativo do jQuery Validation para validação orientado por atributos de dados HTML 5. A Microsoft enviou o jquery.validate.unobtrusive.js de volta com o MVC 3. Ele forneceu uma maneira de aplicar validações de modelo de dados ao lado do cliente usando uma combinação de validação jQuery e atributos de dados HTML 5 (que é a parte "discreta").

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.