Das Verständnis der $.validator.unauffällig ist.- Adapter.addBool () - Methode

Ich versuche etwas zu verstehen.

Aus diesem Beitrag http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html

Bridging HTML und jQuery Validate: Adapter

Schreiben eine client-side-validator besteht aus zwei Schritten: schreiben Sie die
Prüfung für jQuery Validierung und das schreiben der adapter nimmt den
Parameterwerte aus den HTML-Attribute und verwandelt es in jQuery
Validierung der Metadaten
. Der ehemalige Thema nicht in den Rahmen dieses Blogs
post (da es wirklich nicht MVC-spezifisch).

Gibt es ein adapter-Sammlung verfügbar
jQuery.validator.unauffällig ist.- Adapter. Hängen Sie den adapter
Sammlung ist der adapter Anmeldung-Methode (hinzufügen) und drei Helfer
kann verwendet werden, um zu registrieren, sehr häufige Arten von Adaptern (addBool,
addSingleVal, und addMinMax).

Bemerken, dass es sagt, zwei Schritte.

Aber wenn Sie werfen Sie einen Blick auf diese post MVC3: machen Kontrollkästchen erforderlich per jQuery Validierung? müssen Sie nur den zweiten Schritt ("schreiben Sie den adapter") für die überprüfung der Arbeit - durch das hinzufügen dieser Codezeile:

$.validator.unobtrusive.adapters.addBool("mandatory", "required");

Getestet habe ich den code in ein neues MVC 4 Internet App und es funktioniert gut, hier ist die supersimple Probe.

View-Modell

public class SimpleViewModel
{
    [Mandatory(ErrorMessage = "You must agree to the Terms to register.")]
    [Display(Name = "Terms Accepted")]
    public bool IsTermsAccepted { get; set; }
}

Validation-Attribut

public class MandatoryAttribute : ValidationAttribute, IClientValidatable
{
    public override bool IsValid(object value)
    {
        return (!(value is bool) || (bool)value);
    }

    public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
    {
        ModelClientValidationRule rule = new ModelClientValidationRule();
        rule.ErrorMessage = FormatErrorMessage(metadata.GetDisplayName());
        rule.ValidationType = "mandatory";
        yield return rule;
    }
}

Ansicht

@model MvcApplication2.Models.SimpleViewModel

@{
    ViewBag.Title = "";
}    

@using (Html.BeginForm()) {
    @Html.ValidationSummary()
    @Html.CheckBoxFor(model => model.IsTermsAccepted)
    @Html.ValidationMessageFor(model => model.IsTermsAccepted)
    <input type="submit" value="Send" />
}

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
    <script type="text/javascript">
        $.validator.unobtrusive.adapters.addBool("mandatory", "required");
    </script>
}

Also im Grunde habe ich drei Fragen:

  1. $.validator.unauffällig ist.- Adapter.addBool("erforderlich", "erforderlich"); wirklich das einzige, was Sie benötigen, neben dem schreiben ein Attribut der Klasse?
  2. was genau tut er hinter den kulissen?
  3. wo finde ich gute Dokumentation über addBool?

InformationsquelleAutor der Frage PussInBoots | 2012-08-16

Schreibe einen Kommentar