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:
- $.validator.unauffällig ist.- Adapter.addBool("erforderlich", "erforderlich"); wirklich das einzige, was Sie benötigen, neben dem schreiben ein Attribut der Klasse?
- was genau tut er hinter den kulissen?
- wo finde ich gute Dokumentation über addBool?
InformationsquelleAutor der Frage PussInBoots | 2012-08-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Neben dem Artikel @BlueChippy verlinkt in den Kommentaren, fand ich die Antwort zu 2. in dieser Artikel.
3 . Weitere Informationen finden Sie in dieser Artikel über Brad Wilson ' s blog.
InformationsquelleAutor der Antwort marapet