Was ist die unauffällige jQuery-Validierung?

148

Ich weiß, was das jQuery Validation-Plugin ist. Ich weiß, dass die jQuery Unobtrusive Validation-Bibliothek von Microsoft erstellt wurde und im ASP.NET MVC-Framework enthalten ist. Aber ich kann keine einzige Online-Quelle finden, die erklärt, was es ist. Was ist der Unterschied zwischen der Standard-jQuery-Validierungsbibliothek und der "unauffälligen" Version?

user1438940
quelle
2
Durch die unauffällige Validierung werden dem HTML-Code data-val -...-Attribute hinzugefügt, sodass Sie die Validierung auch in der HTML-Quelle lesen können.
Preben Huybrechts
3
Ich glaube, die Antwort auf Ihre Frage wird hier erklärt: bradwilson.typepad.com/blog/2010/10/… Er erklärt den Unterschied zwischen dem, was passiert, wenn Unobtrusive ein- oder ausgeschaltet ist.
Tommy

Antworten:

123

Brad Wilson hat ein paar großartige Artikel über unauffällige Validierung und unauffälligen Ajax .
Es wird auch sehr schön in diesem Pluralsight-Video im Abschnitt "AJAX und JavaScript" gezeigt.

Grundsätzlich ist es einfach die Javascript-Validierung, die Ihren Quellcode nicht mit einem eigenen Validierungscode verschmutzt . Dazu werden data-Attribute in HTML verwendet.

bertl
quelle
Können Sie uns bitte die Verbesserungen in mvc3 für unauffällige Validierungen mitteilen?
wwcdwdcw
Der Link zum Video ist unterbrochen.
Mischa Moroshko
Vielen Dank an @MishaMoroshko für den Hinweis. Ich konnte vorerst keine Alternative auf Pluralsight finden, also habe ich den Link entfernt. Ich werde den Beitrag erneut bearbeiten, sobald ich einen Ersatz habe.
Bertl
Einige Codebeispiele wären nett. Da Ihre Antwort nicht wirklich hilfreich ist, suchen die meisten Leute hier nach schnellen Lösungen und Codebeispielen, nicht nach Links zu Artikeln. Sie können im Laufe der Zeit brechen. Sie sind im Allgemeinen eine gute Referenz, nachdem Sie sie gesehen haben das Codebeispiel. Ich bevorzuge die nächsten 2 Antworten.
Owen
107

Mit der unauffälligen Art:

  • Sie müssen die validate () -Methode nicht aufrufen.
  • Sie legen Anforderungen mithilfe von Datenattributen fest (Datenwert, Datenwert erforderlich usw.).

Jquery Validate Beispiel :

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

Jquery Validate Unauffälliges Beispiel :

<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>
James Lawruk
quelle
4
Vielen Dank, ich habe versucht, mit Strg-F den Aufruf von valdiate () in einem Code zu finden, an dem ich arbeiten musste. Ich habe mich gefragt, warum ich es nicht finden konnte
bio595
2
Ja, "unauffällig" scheint hier ein Euphemismus für "unentdeckbar" zu sein.
ReactingToAngularVues
18

Zur Verdeutlichung finden Sie hier ein detaillierteres Beispiel, das die Formularvalidierung mit jQuery Validation Unobtrusive demonstriert.

Beide verwenden das folgende JavaScript mit jQuery:

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

Die Hauptunterschiede zwischen den beiden Plugins sind die Attribute, die für jeden Ansatz verwendet werden.

jQuery-Validierung

Verwenden Sie einfach die folgenden Attribute:

  • Bei Bedarf einstellen
  • Stellen Sie den Typ für die richtige Formatierung ein (E-Mail usw.)
  • Legen Sie andere Attribute wie Größe (Mindestlänge usw.) fest.

Hier ist das Formular ...

<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>

jQuery-Validierung unauffällig

Folgende Datenattribute werden benötigt:

  • data-msg-required = "Dies ist erforderlich."
  • Datenregel erforderlich = "wahr / falsch"

Hier ist das Formular ...

<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>

Basierend auf einem dieser Beispiele wird eine Meldung angezeigt, in der Sie darüber informiert werden, dass alle Formularfelder validiert sind, wenn die erforderlichen Formularfelder ausgefüllt wurden und die zusätzlichen Attributkriterien erfüllen. Andernfalls wird in der Nähe der fehlerhaften Formularfelder Text angezeigt, der auf den Fehler hinweist.

Referenzen: - jQuery-Validierung: https://jqueryvalidation.org/documentation/

Richard Nalezynski
quelle
7

jQuery Validation Unobtrusive Native ist eine Sammlung von ASP.Net MVC HTML-Hilfserweiterungen. Diese nutzen die native Unterstützung von jQuery Validation für die Validierung, die von HTML 5-Datenattributen gesteuert wird. Microsoft hat jquery.validate.unobtrusive.js mit MVC 3 zurückgesendet. Es bot eine Möglichkeit, Datenmodellvalidierungen mithilfe einer Kombination aus jQuery Validation- und HTML 5-Datenattributen auf die Clientseite anzuwenden (dies ist der "unauffällige" Teil).

bimal
quelle