Twitter-style de saisie semi-automatique dans le textarea
Je suis à la recherche d'un Javascript de saisie semi-automatique de mise en œuvre qui comprend les éléments suivants:
- Peut être utilisé dans un code HTML textarea
- Permet de taper du texte normal, sans invoquer de saisie semi-automatique
- Détecte la
@
personnage et commence la saisie semi-automatique lorsqu'il est tapé - Charges de la liste des options par le biais de l'AJAX
Je crois que c'est similaire à ce que Twitter est en train de faire lorsque le marquage dans un tweet, mais je ne peux pas trouver une belle, réutilisable mise en œuvre.
Une solution avec jQuery, ce serait parfait.
Grâce.
- github.com/jakiestfu/Mention.js peut être une autre option.
Vous devez vous connecter pour publier un commentaire.
Je suis sûr que votre problème est depuis longtemps résolu, mais jquery-textcomplete dirait qu'il devrait faire le travail.
Une autre grande bibliothèque qui résout ce problème At.js
Source
Démo
Avez-vous essayé cette
GITHUB: https://github.com/podio/jquery-mentions-input
DÉMO/CONFIG: http://podio.github.io/jquery-mentions-input/
Il est assez simple à mettre en œuvre.
Essayez ceci:
JS:
CSS:
HTML:
http://jsfiddle.net/mekwall/mcWnL/52/
Ce lien vous aidera à
J'ai créé un Meteor paquet pour cette fin. Météore du modèle de données permet rapide multi-règle de la recherche personnalisée de rendu des listes. Si vous n'êtes pas à l'aide de Meteor pour votre application web, (je crois) vous malheureusement ne trouvent rien de ce génial pour l'autocomplétion.
Autocompleting utilisateurs avec
@
, en ligne où les utilisateurs sont indiqués en vert:Dans la même ligne, autocompleting quelque chose d'autre avec des métadonnées et bootstrap icônes:
Fourche, tirer, et améliorer:
Je ne pouvais pas trouver une solution qui correspondait à mes attentes, j'ai donc fini avec les personnes suivantes:
J'utilise le jQuery
keypress()
événement à vérifier pour l'utilisateur en appuyant sur la@
caractère.Si c'est le cas, une boîte de dialogue modale est affichée à l'aide de jQuery UI. Cette boîte de dialogue contient un champ de texte de saisie semi-automatique (de nombreuses options peuvent être utilisées ici, mais je recommander jQuery Tokeninput)
Lorsque l'utilisateur sélectionne une option dans la boîte de dialogue, un tag est ajouté au champ de texte et la boîte de dialogue est fermée.
Ce n'est pas la solution la plus élégante, mais il fonctionne, et il n'a pas besoin de plus touches par rapport à ma conception originale.
Modifier
Donc, fondamentalement, nous avons notre grande zone de texte où l'utilisateur peut saisir du texte. Il doit être capable de "balise" d'un utilisateur (ce qui signifie simplement d'insérer
#<userid>
dans le texte). - Je joindre à la jQuery événement keyup et de détecter les@
caractère à l'aide de(e.which == 64)
de montrer un modal avec un champ de texte pour sélectionner les utilisateurs de marquer.De la viande de la solution est tout simplement de cette boîte de dialogue modale avec un jQuery Tokeninput zone de texte. Que l'utilisateur tape ici, la liste des utilisateurs est chargé via AJAX. Voir les exemples sur le site pour savoir comment l'utiliser correctement. Lorsque l'utilisateur ferme la boîte de dialogue, j'ai insérer la IDs dans la grande zone de texte.
Récemment, j'ai eu à faire face à ce problème et c'est ainsi que j'ai cloué vers le bas...
Cela fonctionne dans tous les navigateurs les plus récents. ne l'ai pas testé sur d'anciennes
Ici est De travail de la corbeille
Un autre plugin qui fournit une fonctionnalité similaire:
AutoSuggest
Vous pouvez l'utiliser avec la coutume des déclencheurs ou vous pouvez l'utiliser sans aucun déclencheurs. Fonctionne avec des champs de saisie, ces zones de texte et contenteditables. Et jQuery n'est pas une dépendance.
Cette petite extension semble être le plus proche, au moins dans la présentation de ce qui a été demandé. Depuis qu'elle est petite, il peut être facile à comprendre et à modifier. http://lookapanda.github.io/jquery-hashtags/
CETTE devrait fonctionner. En ce qui concerne l' @ coups de pied hors de la recherche, il suffit d'ajouter (de manière dynamique ou pas) le symbole au début de chaque terme de recherche.