Je voudrais démarrer une action (activation automatique) lorsque les types d'utilisateurs '@'. J'ai JQuery disponible.
généralement sur un clavier QWERTY, c'est comme ceci: p> Cependant, il ne fonctionne pas correctement sur un clavier Azerty. Le code clé = 50 correspond à la à © kbd> ~ kbd> / kbd> 2 kbd> clé. Pour taper '@' dans le clavier Azerty, il est altgr kbd> + à kbd> @ kbd> / kbd> 0 KBD> Touche. P> EDIT: Sélection automatique démarre quand @ est entré, et seulement après cela. Exemple, quand quelqu'un entre "Hello @", alors il commence, cependant, quand il tape "Bonjour @Nothing d'autre" La complète ne fera rien. Exemple: http://mrkipling.github.com/jquery-at-username/ (Ça ne fonctionne que sur le clavier QWERTY). P> P>
5 Réponses :
La seule autre option qui vous vient à l'esprit serait une minuterie qui vérifie le contenu de l'entrée de texte.
var patt=new RegExp(/^@/); var charCheck = setInterval(function(){ if (patt.test($("#textInput").val())){ // initiate autocomplete } },100);
Il devrait vérifier @ n'importe où dans le Textarea, et l'autocomplete ne commence que lorsque le curseur est juste après le caractère "@". Je pense qu'il est toujours possible de vérifier toutes ces conditions, mais y a-t-il une solution plus simple?
@JCI - Vous devriez mentionner la spécification sur la position du curseur dans votre message principal. De plus, si vous souhaitez rechercher ce symbole n'importe où dans la chaîne, supprimez simplement le symbole ^ code>.
Que diriez-vous de vérifier si Démo: strong> @ code> a été entré comme le dernier caractère de la valeur du champ?
Merci, cela fait fondamentalement ce que j'aimerais faire. Il y a quelques cas, par exemple, lorsque l'utilisateur termine un message, passe ensuite au début et ajoute '@Asername' Ça ne fonctionnera pas. Je vais essayer de l'adapter.
@JCisio Oui, il pourrait peut-être avoir besoin d'une certaine correction. Au moins, je ne vois aucune autre solution rapide et de travail.
Ici, vous allez de ma vieille réponse ici: p>
Merci, tandis que j'évite JQuery Ui (et sa bibliothèque autocomplète), cet exemple a quelques points intelligents, comme il ne reçoit que le dernier terme, etc. Je suis en signet pour une utilisation ultérieure.
Utiliser keypress code> au lieu de
clé code>. Tandis que
keydown code> concerne chaque appui d'une touche,
keypress code> concerne les caractères traduits, donc par exemple
A code> peut être différent de
A code> pendant que la touche kbd> kbd> est enfoncée, le travail de caractères composé, le travail des touches morts et d'autres différences dans les mappages de clavier sont manipulés. P>
Exactement! L'événement code> KeyPress CODE> détecte correctement le code de @ code> (64). Je pense que je devrai séparer les deux événements: un pour détecter le caractère
@ code>, un autre à l'aide de la touche code> pour détecter les touches fléchées pour la partie "complète".
@jCisio qui a du sens. Cependant, je ne suis pas sûr du support du navigateur unifié de KeyPress CODE>.
@Vision Il est meilleur que le support du navigateur unifié pour la clé et le porte-clés!
@Vision Je ne suis pas sûr de comprendre correctement ce que vous dites. L'événement KeyPress est pris en charge dans JQuery et l'événement.Qui est également normalisé sur le navigateur de JQuery.
@JCISIO Je veux dire si tous les navigateurs (et OS) vous donneront 64 sur keypress code>. Toutes les mines font mais je ne suis toujours pas sûr. Quoi qu'il en soit, comme dit Jon, il est meilleur que
clé code> et
keyup code>.
Parce que cela dépend de certaines des caractéristiques les moins bien standardisées dans les implémentations JavaScript du navigateur, JQuery Docs le signalez-le comme n'étant pas l'une, elles peuvent donner des garanties particulièrement bonnes de cela fonctionnent bien. Cela dit cependant, la même chose est également vrai du clés et encore plus!
@jCisio Voici quelques informations sur la compatibilité des événements clés: Unixpapa.com/js/key.html .
Event.Key Code> et JS moderne, vérifiant pour @ code> directement! pas de code Numéro em> plus. Vous pouvez vérifier directement la clé. P> xxx pré> Mozilla Docs P>
D'Oh, je n'ai pas remarqué ce que Stackoverlow a exactement ce dont j'ai besoin avec la fonctionnalité de nom d'utilisateur autocomplete dans le commentaire.