Comment empêcher la saisie de caractères spéciaux dans un champ de saisie avec jquery?
jquery
special-characters
alphanumeric
Nerd Stalker
la source
la source
Réponses:
Un exemple simple utilisant une expression régulière que vous pouvez modifier pour autoriser / interdire ce que vous voulez.
la source
Je cherchais une réponse qui restreignait la saisie aux seuls caractères alphanumériques, mais autorisait toujours l'utilisation de caractères de contrôle (par exemple, retour arrière, suppression, tabulation) et copier + coller. Aucune des réponses fournies que j'ai essayées ne répondait à toutes ces exigences, j'ai donc proposé ce qui suit en utilisant l'
input
événement.Edit:
Comme Rinogo l'a souligné dans les commentaires, l'extrait de code ci-dessus force le curseur à la fin de l'entrée lors de la saisie au milieu du texte d'entrée. Je pense que l'extrait de code ci-dessous résout ce problème.
la source
event.which
ouevent.keycode
! J'aimerais pouvoir +10!Réponse courte: évitez l'événement 'keypress':
Réponse longue: utilisez un plugin comme jquery.alphanum
Il y a plusieurs choses à considérer lors du choix d'une solution:
Je pense que ce domaine est suffisamment complexe pour justifier l'utilisation d'un plugin tiers. J'ai essayé plusieurs des plugins disponibles mais j'ai trouvé des problèmes avec chacun d'eux, alors j'ai continué et j'ai écrit jquery.alphanum . Le code ressemble à ceci:
Ou pour un contrôle plus fin, ajoutez quelques paramètres:
J'espère que ça aide.
la source
allow
paramètre. Mais c'est la beauté des plugins jquery, le fait que vous puissiez les modifier en fonction de vos besoins. Merci!allow
option et cela a fonctionné bien pour moi en utilisant ce code:$('#firstName').alphanum({allow: "/"});
Avez-vous une chance de fournir plus d'informations? S'il y a un bogue ou un problème avec la documentation, ce serait bien de le faire réparer. CheersallowOtherCharSets: false
etallowCaseless: false
. Ceux-ci ont interféré avec les paramètres définis dansallow
. De mon point de vue, je pense que l'allow
option devrait opposer son veto à toutes les autres options (commeallowOtherCharSets
ouallowCaseless
). Donc, si vous spécifiez un caractère dans l'allow
option, il doit être autorisé quelles que soient les autres options définies dans l'objet de configuration. Il en va de mêmedisallow
. Mais ce n'est que mon avis. :) Bravo encore! :)allow
etdisallow
avoir une priorité plus élevée. Il est connecté dans le numéro 7 . J'espère que ça aideUtilisez l'attribut d'entrée de modèle de HTML5!
la source
Votre zone de texte:
Votre javascript:
la source
Utilisez regex pour autoriser / interdire quoi que ce soit. Aussi, pour une version légèrement plus robuste que la réponse acceptée, autoriser les caractères sans valeur de clé associée (retour arrière, tabulation, touches fléchées, suppression, etc.) peut être effectué en passant d'abord par l'événement keypress et vérifiez la clé en fonction du code clé au lieu de la valeur.
la source
Jetez un œil au plugin alphanumérique jQuery. https://github.com/KevinSheedy/jquery.alphanum
la source
Écrivez du code javascript sur l'événement onkeypress de la zone de texte. selon l'exigence autoriser et restreindre le caractère dans votre zone de texte
la source
J'utilise ce code en modifiant les autres que j'ai vus. Seulement grand à l'écriture de l'utilisateur si la touche enfoncée ou le texte collé réussit le test de modèle (correspondance) (cet exemple est une entrée de texte qui n'autorise que 8 chiffres)
la source
!e.charCode ? e.which : e.charCode
et pas simplemente.charCode ? e.charCode : e.which
?ceci est un exemple qui empêche l'utilisateur de taper le caractère "a"
référence des codes clés ici:
http://www.expandinghead.net/keycode.html
la source
la source
Oui, vous pouvez le faire en utilisant jQuery comme:
et le script de votre user_availability.php sera:
J'ai essayé d'ajouter pour / et \ mais je n'ai pas réussi.
Vous pouvez également le faire en utilisant javascript et le code sera:
la source
juste les chiffres:
ou pour le temps comprenant ":"
y compris également la suppression et le retour arrière:
malheureusement ne pas le faire fonctionner sur un iMAC
la source
Je voulais commenter le commentaire d'Alex à la réponse de Dale. Pas possible (il faut d'abord combien de "rep"? Cela n'arrivera pas très vite .. système étrange.) Donc, comme réponse:
Le retour arrière peut être ajouté en ajoutant \ b à la définition de l'expression régulière comme ceci: [a-zA-Z0-9 \ b]. Ou vous autorisez simplement toute la plage latine, y compris plus ou moins tout caractère "non exotique" (contrôle également les caractères comme le retour arrière): ^ [\ u0000- \ u024F \ u20AC] + $
Seul le vrai caractère unicode en dehors du latin, il y a le signe euro (20ac), ajoutez tout ce dont vous pourriez avoir besoin.
Pour gérer également les entrées saisies par copier-coller, il vous suffit de vous lier à l'événement "change" et de vérifier également l'entrée - en la supprimant ou en la rayant / en donnant un message d'erreur du type "caractères non pris en charge".
la source
Restreindre les caractères spéciaux en appuyant sur une touche. Voici une page de test pour les codes clés: http://www.asquare.net/javascript/tests/KeyCode.html
Dans Angular, j'avais besoin d'un format de devise approprié dans mon champ de texte. Ma solution:
Dans le html, ajoutez la directive
et dans le contrôleur angulaire correspondant, je n'autorise qu'une seule période, je convertis le texte en nombre et j'ajoute l'arrondi des nombres sur `` flou ''
la source
Pour remplacer les caractères spéciaux, espace et convertir en minuscules
la source
la source
Autoriser uniquement les nombres dans TextBox (restreindre les alphabets et les caractères spéciaux)
la source
la source