J'ai une zone de texte dans laquelle l'utilisateur entre le texte. Je souhaite récupérer le texte saisi par l'utilisateur, y compris le nouveau caractère de ligne automatiquement enveloppé. comment obtenir le texte de textarea en utilisant jQuery avec le caractère newline préservé?comment obtenir le texte de textarea en utilisant jQuery avec le caractère newline préservé?
Répondre
Compte tenu de votre montage, il va être assez difficile, voire impossible de le faire avec précision. Le problème est que l'encapsulage automatique n'introduit pas de caractères de nouvelle ligne, c'est juste le navigateur qui affiche une chaîne sur plusieurs lignes ... Donc la seule façon de penser est d'essayer & d'écrire du code pour estimer où les nouvelles lignes étaient rendu en fonction de la largeur du textarea
et les insérer manuellement.
Donc, avec cela à l'esprit si votre zone de texte ne dispose pas d'une largeur de CSS défini et vous utilisez l'cols="xx"
attribut et vous utilisez une police de largeur fixe et vous avez toujours les barres de défilement montrant (ces effets la largeur de la zone de texte est rendu en fonction de cols
), alors vous devrait être en mesure calculer le nombre de mots affichés sur une seule ligne avant qu'il ne soit enveloppé automatiquement par le navigateur en faisant quelque chose comme ceci:
//Based off <textarea id="text" cols="50" rows="5" style="overflow: scroll">This is a test sentence, with no newline characters in it, but with an automatically wrapped sentence that spans three lines.</textarea>
var words = $("#text").val().split(" ");
var cols = $("#text").attr("cols");
var text = "";
var lineLength = 0;
for (var i = 0; i < words.length; i++) {
var word = words[i];
if ((lineLength + word.length + 1) > cols) {
text += "\n";
lineLength = 0;
} else if (lineLength > 0) {
text += " ";
lineLength++;
}
text += word;
lineLength += word.length;
}
alert(text);
//Alerts:
//This is a test sentence, with no newline
//characters in it, but with an automatically
//wrapped sentence that spans three lines.
Cependant, c'est beaucoup de si s, et je ne sais pas comment cela fonctionnerait dans tous les navigateurs (je l'ai testé & il semble fonctionner dans Firefox 3.6) ...
également notez que si vous suivez cette route, que mon code de retour de mot est très rudimentaire et qu'il est pratiquement garanti de ne pas correspondre à ce que fait le navigateur dans tous les cas, vous devrez peut-être développer en fonction de vos besoins. Par exemple, les mots plus longs que la longueur cols
sont divisés par firefox, mais pas par mon code.
Vous devez remplacer le "\ n" par des balises br ou placer le contenu en avant pour afficher les lignes suivantes.
Voici un exemple de code:
en supposant que vous avez votre balisage de la page comme ceci:
<div id="res"></div>
<textarea id="txtarea"></textarea>
<button id="btn">go</button>
alors c'est le code jquery:
$(document).ready(function() {
var btn = $('#btn');
var txtarea = $('#txtarea');
var result = $('#res');
btn.click(function() {
var val = txtarea.val().replace(/\n/g, '<br/>');
result.html(val);
return false;
});
});
J'espère que cela aide.
À mon avis, c'est une bien meilleure solution qu'Alconja. –
I want to keep automatically wrapped newlines.
Vous ne pouvez pas faire cela, parce qu'il n'y a pas de sauts de ligne là. Le contrôle Textarea fait l'emballage visuel pour vous. Il n'y a pas de nouvelles lignes, sauf si vous les tapez.
- 1. Newline caractère dans le fichier texte en utilisant QFile
- 2. caractère Newline perdu dans IE8 textarea
- 3. Remplacer le caractère Newline de Microsoft Word en Python
- 4. comment afficher le texte en tapant textarea dans jquery
- 5. JavaScript Newline caractère
- 6. Jquery TextArea JSON et caractère illégal - plus particulièrement le £
- 7. Textarea numéro de ligne en utilisant jQuery
- 8. \ n le caractère newline est ignoré par java
- 9. surligner le texte dans textarea
- 10. Besoin d'ignorer le caractère newline (\ n) du fichier d'entrée
- 11. PythonCard textarea comment définir le texte
- 12. Convertir le texte textarea en HTML valide
- 13. Java Swing: Comment obtenir la valeur TextArea y compris le caractère que vous venez de taper?
- 14. Comment afficher le texte en textArea en * .jsp?
- 15. Remplacer le texte en utilisant jquery
- 16. Comment obtenir les valeurs d'entrée et de textarea sur la fonction de changement en utilisant jquery
- 17. Obtenez le texte de CheckBoxList de asp.net en utilisant jquery
- 18. Changer le texte spécifique en utilisant jQuery
- 19. Comment obtenir un peu de texte en utilisant jQuery
- 20. jQuery obtenir le texte comme le numéro
- 21. La saisie de texte de zone de texte en utilisant toujours Jquery 'un caractère derrière'
- 22. Comment remplacer un caractère dans le texte par jquery
- 23. Jquery: Comment trouver du texte dans textarea
- 24. Maxlength dans textarea utilisant jQuery
- 25. Comment obtenir le nom de la classe en utilisant jquery
- 26. Comment obtenir le texte avant $ el avec jQuery?
- 27. Comment rechercher du texte et le remplacer en utilisant jQuery
- 28. Comment s'aligner avec le texte de jQuery?
- 29. Problème Textarea avec IE6 - J'utilise le framework Jquery pour javascript
- 30. Comment obtenir le texte de l'option sélectionnée d'un select en utilisant jquery?
Est-ce que $ ('textarea'). Val() ne fonctionne pas? Qu'est-ce que vous obtenez à la place du caractère de nouvelle ligne? – hwiechers
Cela ne fonctionne pas. J'ai entré le texte salut comment sont vous? et je reçois "hihowareyou?" – Elangovan
La suggestion de @hwiechers fonctionne bien pour moi ... à moins que vous ne souhaitiez conserver automatiquement les "nouvelles lignes", ce qui sera presque impossible. – Alconja