Je cherchais une réponse qui limite la saisie aux seuls caractères alphanumériques, tout en permettant l'utilisation des caractères de contrôle (par exemple, retour arrière, suppression, tabulation) et le copier-coller. Aucune des réponses fournies que j'ai essayées ne répondait à toutes ces exigences, et j'ai donc trouvé la réponse suivante en utilisant la fonction input
événement.
$('input').on('input', function() {
$(this).val($(this).val().replace(/[^a-z0-9]/gi, ''));
});
Edit :
Comme rinogo Comme indiqué dans les commentaires, l'extrait de code ci-dessus force le curseur à se placer à la fin de la saisie lorsque l'on tape au milieu du texte. Je pense que l'extrait de code ci-dessous résout ce problème.
$('input').on('input', function() {
var c = this.selectionStart,
r = /[^a-z0-9]/gi,
v = $(this).val();
if(r.test(v)) {
$(this).val(v.replace(r, ''));
c--;
}
this.setSelectionRange(c, c);
});
1 votes
Utilisez un Validation de jQuery et n'autorise que les caractères alphanumériques.