Soumettre valeur en appuyant sur Entrée dans la zone de texte et appuyez sur Maj+Entrée doit passer à la ligne suivante
Je veux avoir une zone de chat (textarea) où si l'utilisateur appuyez sur Entrée, puis soumettre le chat, et si l'utilisateur appuyez sur Maj+Entrée, alors il devrait entrer dans une nouvelle ligne.
J'ai essayé quelque chose, mais pas en mesure de comprendre exactement keyup ou keydown chose. Le code que j'utilise en ce moment est:
$("textarea").keydown(function(e){
if (e.keyCode == 13 && !e.shiftKey)
{
e.preventDefault();
}
});
Aussi je veux obtenir le \n
en place lors de l'Entrée+la touche Shift est enfoncée.
MODIFIER
Problème avec mon code est:-
Quand je suis en vérifier le contenu sur le client en utilisant l'aide d'alerte puis il montre la ligne suivante. Mais quand j'ai poster mon rails de back-end. Alors, c'est juste une simple chaîne de caractères. Pas de nouvelles de la ligne est là.
C'est la façon dont je suis l'envoi de chats de serveur rails.
$.post("/incomingchat", { body:$("#chat_" + group_id).val() },
function(data){
//do something..
});
Quel est le problème avec le code que vous avez posté? Pour moi, il fonctionne exactement comme vous l'avez décrit? jsfiddle.net/Su5ts/25
Désolé, garder cette chose à l'esprit.
OriginalL'auteur Mohit Jain | 2011-09-08
Vous devez vous connecter pour publier un commentaire.
J'ai répondu à cette question. C'est un peu délicat si le curseur n'est pas à la fin de la textarea:
Comment puis-je détecter "maj+entrée" et de créer une nouvelle ligne dans le Textarea?
Je ne comprends pas. La valeur du textarea après avoir appuyé sur maj+entrée contient un saut de ligne et cette ligne de repos va certainement être transmis au serveur lorsque vous postez.
J'ai une question connexe. Dans google Chrome, si je gère l'événement keypress lorsque la touche entrée est pressée par l'ajout de la nouvelle ligne de caractère '\n', et si le textarea est scrollable, la barre de défilement ne fonctionne pas, je veux dire, si j'appuie sur la touche entrée, textarea ne pas faire défiler quand je tape. Avez-vous une idée pour ce problème?
OriginalL'auteur Tim Down
OriginalL'auteur AndreyKo
Envisager d'utiliser l'événement keypress à la place. Si vous exécutez le code dans jsfiddle, vous verrez qu'une nouvelle ligne est ajoutée pas lorsque vous appuyez sur entrée.
Ok, je vois. Dans ce cas, je vous suggère de regarder Tim en Bas de la réponse qu'il a posté ci-dessus.
OriginalL'auteur pedrodg