2014-10-30 13 views
6

Sto usando l'ultima versione di jQuery Validation Unobtrusive in combinazione con l'ultima versione di jQuery Validate. La convalida stessa funziona come un fascino. Tuttavia, se il campo non è valido, i valori verranno aggiunti all'attributo aria-describedby.Più valori per aria -disposta quando si usa jQuery Validation Non invadente

Diciamo che voglio digitare la mia password (per la validazione la lunghezza della password deve essere maggiore di 6). Il codice HTML iniziale è simile al seguente:

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

comincio a digitare una password con soli 5 caratteri e quindi rimuovere attenzione dal input cliccando da qualche parte sul body. La convalida viene eseguita e verranno aggiunti numerosi attributi e valori, tra cui aria-describedby. Ora l'attributo aria-describedby ha un solo valore Password-error. Se poi si concentra nuovamente il campo di immissione e si rimuovono tutti i caratteri e si continua a premere backspace, viene aggiunto un nuovo valore su ogni keyup. Il risultato è il seguente:

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

Questo è piuttosto un sovraccarico di valori per l'attributo considiering che i valori sono uguali. Questo comportamento è normale o qualcuno sa come risolvere il problema?

+0

Hai trovato qualche soluzione? – Alex

+0

Vedere la mia risposta qui sotto. In qualche modo il problema era scomparso dopo aver ricostruito la soluzione in VS ed eliminato le copie shadow che vengono create in background. – LordTribual

risposta

0

Non ho alcuna spiegazione esplicita per il problema, ma poiché Visual Studio crea copie shadow in background, è possibile risolvere il problema risolvendo il problema e cancellando tutti i file shadow per il progetto e una ricostruzione successiva.

4

Questo problema era presente nella v1.13.0 di jquery.validate.js ma da allora è stato risolto (almeno alla v1.14.0).