2014-10-30 6 views
6

Ich verwende die neueste Version von jQuery Validation Unobtrusive in Kombination mit der neuesten Version von jQuery Validate. Die Validierung selbst funktioniert wie ein Zauber. Wenn das Feld jedoch ungültig ist, werden dem Attribut aria-describedby Werte hinzugefügt.Mehrere Werte für aria-beschrieben von jQuery Validation Unobtrusive

Sagen wir, ich möchte mein Passwort eingeben (zur Überprüfung muss die Länge des Passwortes größer als 6 sein). Die anfängliche HTML sieht wie folgt aus:

<input data-val="true" data-val-minlength="The field Passwort must be a string or array type with  a minimum length of '6'." 
    data-val-minlength-min="6" data-val-required="The Passwort field is required." 
    id="Password" name="Password" tabindex="2" 
type="password"> 

Ich beginne mit nur 5 Zeichen ein Kennwort eingeben und dann Fokus entfernen input von irgendwo einen Klick auf den body. Die Validierung läuft durch und eine Reihe von Attributen und Werten einschließlich aria-describedby wird hinzugefügt. Jetzt hat das aria-describedby Attribut nur einen einzelnen Wert Password-error. Wenn ich dann das Eingabefeld erneut fokussiere und alle Zeichen lösche und sogar die Rücktaste drücke, wird ein neuer Wert für jede Taste hinzugefügt. Daraus ergibt sich wie folgt zusammen:

<input data-val="true" 
    data-val-minlength="The field Passwort must be a string or array type with a minimum length of '6'." 
    data-val-minlength-min="6" 
    data-val-required="The Passwort field is required." 
    id="Password" name="Password" tabindex="2" type="password" aria-required="true" 
    aria-invalid="true" class="input-validation-error" 
    aria-describedby="Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error Password-error 
Password-error"> 

Dies ist durchaus ein Overhead von Werten für das Attribut considiering, dass die Werte gleich sind. Ist dieses Verhalten normal oder weiß jemand, wie man das repariert?

+0

Haben Sie eine Lösung gefunden? – Alex

+0

Siehe meine Antwort unten. Irgendwie war das Problem verschwunden, nachdem ich die Lösung in VS neu erstellt und die Schattenkopien gelöscht habe, die im Hintergrund erstellt wurden. – LordTribual

Antwort

0

Ich habe keine explizite Erklärung für das Problem, aber da Visual Studio im Hintergrund Schattenkopien erstellt, konnte ich das Problem lösen, indem ich die Cashe lösche und alle Shadow-Dateien für das Projekt löschte und anschließend neu erstellte.

4

Dieses Problem war in v1.13.0 von jquery.validate.js vorhanden, wurde aber behoben (in mindestens v1.14.0).