Come personalizzare il messaggio di errore di maxlength con jQuery convalidato per mostrare il numero di caratteri immessi
-
05-07-2019 - |
Domanda
Voglio che la validazione maxlength
di jQuery validate visualizzi un messaggio di errore simile al seguente:
" Ti preghiamo di inserire non più di {0} caratteri. Al momento hai inserito {1} caratteri. & Quot;
Dove {1}
è un segnaposto per l'importo effettivo.
Qual è il modo migliore per farlo?
Soluzione
Non penso che ci sia un modo semplice per farlo, ma ho trovato una soluzione alternativa per te. Immagino che potresti scrivere il tuo validatore per quel campo, ma questo potrebbe essere più semplice.
Inizia cambiando il messaggio predefinito per gli errori maxlength
:
$.extend($.validator.messages, {
maxlength: $.validator.format("Please enter no more than {0} characters. You've currently entered CHARS_NO characters.")
});
Mantieni la convalida come al solito, ma aggiungi questa funzione:
$('input').keyup(function () {
var rules = $(this).rules();
if (rules.maxlength !== undefined && !$(this).valid()) {
var errorLabel = $('label[for=' + $(this).attr('id') + '][generated=true].error');
errorLabel.text(errorLabel.text().replace('CHARS_NO', $(this).val().length));
return false;
}
});
Ecco la demo funzionante per te.
Altri suggerimenti
Non sono sicuro di come si stia attivando la convalida, ma l'attributo maxlength
su un input
impedirà all'utente di inserire più caratteri di qualunque cosa indichi quel valore . Pertanto, non sarà necessario informare l'utente che hanno inserito più caratteri di maxlength
poiché semplicemente non possono farlo.
Puoi fornire ulteriori contesti e / o dettagli?