smileys pour textarea cliquez sur
J'ai une petite question
Je veux cliquer sur mes smileys et insérer le texte dans le textarea.
et lorsque je veux ajouter un smiley plus tard, le smiley devrait être ajouté à la position du curseur et non pas à la fin dans le textarea.
C'est mon html code:
<textarea id="description" name="description"></textarea>
<div id="emoticons">
<a href="#" title=":)"><img alt=":)" border="0" src="/images/emoticon-happy.png" /></a>
<a href="#" title=":("><img alt=":(" border="0" src="/images/emoticon-unhappy.png" /></a>
<a href="#" title=":o"><img alt=":o" border="0" src="/images/emoticon-surprised.png" /></a>
</div>
C'est mon JS code:
$('#emoticons a').click(function(){
var smiley = $(this).attr('title');
$('#description').val($('#description').val()+" "+smiley+" ");
});
Ici vous pouvez voir le résultat (PAS de WRAP - CORPS)
http://jsfiddle.net/JVDES/8/
- Je utiliser un extern fichier JS pour mon javascript-code...
Savez-vous pourquoi le code n'est pas en cours d'exécution dans le renvoi automatique à la mode?
http://jsfiddle.net/JVDES/9/
Merci pour votre aide
Ce qui concerne bernte
WOW merci!! Si de nombreuses réponses! 😀 Mais j'ai encore un problème. Le problème dans tous les codes de même! Exemple: j'écris HOHO que je clique sur le 1ère,2ème, 3ème smiley que je clique sur le curseur devant HOHO puis cliquez sur 1ère et 2ème smilie.. Vous verrez que le dernier smiley n'est pas sur la bonne position! Dans google chrome, le résultat est très mauvais! Avec le même exemple les smileys sont dans le mauvais ordre. Est-il un moyen de mettre le curseur dans le textarea après l'ajout de smiley?
OriginalL'auteur bernte | 2012-06-17
Vous devez vous connecter pour publier un commentaire.
Aussi, vous pouvez utiliser quelque chose de cette fonction:
Pour votre exemple, regardez ici.
UPD 1:
Pour régler le curseur à la position spécifiée, utilisez la fonction suivante:
J'ai mis à jour le code sur jsFiddle, donc, pour voir de nouvelles exemple, regardez ici.
J'ai mis à jour ma réponse et d'ajouter une nouvelle fonction qui mettre le curseur dans le textarea.
c'est parfait! Merci!!!! j'ai essayé d'ajouter un espace entre les str, mais que le curseur n'est pas dans la bonne position. avez-vous une idée? je ne sais pas si mes changements de correspondance. MODIFIÉ: TextArea.valeur = avant + ""+ str + "" + après; le curseur est entre le : et le ) - jsfiddle.net/JVDES/15
Le problème est que vous ajoutez plus de 2 caractères (espaces) de champ, mais à
setCursor()
fonction que vous n'envoyez pas de "eux" (les moyensstr
longueur). Dans ce cas, vous devez ajouter des espaces pourstr
avant de l'affecter à textarea et de l'envoyer àsetCursor()
fonction. Voir exemple.qui fonctionne parfaitement! merci
OriginalL'auteur Victor
Essayer ce - http://jsfiddle.net/JVDES/12/
De crédit de la position du curseur de la fonction va - https://stackoverflow.com/a/1891567/981134
OriginalL'auteur Zoltan Toth
La différence entre
no wrap (head)
etno wrap (body)
est que l'ancien va exécuter le code dès que possible et que le second va exécuter le code une fois la page chargée.Dans ce cas, avec
no wrap (head)
, le code est exécuté avant que le "#émoticônes une " existe. Donc $('#émoticônes un') retourne aucun et ne fixez pas le gestionnaire de clic. Plus tard, le lien est créé.Ainsi, la solution est à dire le code à exécuter lorsque la page est chargée.
Il y a un couple, l'équivalent de façons de le faire. http://api.jquery.com/ready/
$(document).ready(handler)
$().ready(handler)
(ce n'est pas recommandé)$(handler)
Donc, en utilisant la version 3, nous avons:
http://jsfiddle.net/Nc67C/
OriginalL'auteur Liyan Chang
essayez aussi cette...
De correction après votre commentaire:
Je pense que vous devriez utiliser
.prop("selectionStart")
au lieu de.attr("selectionStart")
OriginalL'auteur MaJac89