2 votes

Formulaire HTML : Soumettre une entrée de texte AVEC des sauts de ligne

Duplicata possible :
Comment sauvegarder les sauts de ligne saisis par l'utilisateur depuis un TEXTAREA vers une base de données ?

Suis-je en train de rater une solution simple ? Je crée un formulaire avec une entrée de texte. Je veux qu'il soit soumis SANS sauts de ligne. L'utilisateur écrit en fait dans une zone de texte, que javascript/jquery copie dans l'entrée de texte cachée avant de la soumettre.

J'ai vu des solutions où javascript remplace /n, etc. par un caractère de rupture connu. Est-ce la seule solution ? Je dois ensuite le retraduire sur le serveur. J'aimerais vraiment que /n soit soumis comme /n.

4voto

andytuba Points 187

Vous pourriez utiliser un <textarea style="display:none;"></textarea> au lieu d'un <input type="text"> .

2voto

Jukka K. Korpela Points 71599

Lorsqu'un formulaire normal avec une zone de texte normale est soumis, tout saut de ligne saisi par l'utilisateur est transmis comme faisant partie des données. Ils sont canonisés en paires CR LF. Les sauts de ligne sont préservés si vous copiez la valeur d'un élément de zone de texte dans un champ caché.

Le problème est donc ailleurs. Il est possible que votre gestionnaire de formulaire côté serveur ne soit pas préparé à gérer les sauts de ligne. Ou peut-être utilise-t-il les données d'une manière qui fait que le saut de ligne perd de son importance, voire se perd complètement. Une erreur courante des novices consiste à écrire la valeur reçue d'un formulaire dans un document HTML - même si les sauts de ligne sont préservés, ils sont considérés comme équivalents à des espaces par les règles HTML, lorsqu'ils apparaissent en tant que contenu dans un élément normal (à l'opposé de, par exemple, l'élément "A"). textarea o pre ).

Tout saut de ligne créé par automatique le retour à la ligne par le navigateur, et non par les actions de l'utilisateur, sont perdus par défaut. Il n'y a normalement aucune raison de les préserver, mais si vous souhaitez le faire, utilisez l'attribut wrap=hard dans le textarea élément. (L'attribut n'est pas standard mais largement supporté).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X