jQuery: Comment puis-je ajouter un saut de ligne à l'entrée du formulaire?
Je suis la collecte d'informations au standard d'un formulaire HTML. J'ai, par exemple, <input type="text" name="UserName" id="name"/>
. Lorsque le formulaire est soumis, je veux ajouter un saut de ligne à la valeur entrée. Donc, si l'utilisateur a entré "foo", le formulaire doit présenter la valeur "toto\n."
Voici la fonction jQuery que j'utilise:
$("#formID").submit(function () {
$(":text").each(function () {
var value = $(this).val();
var newValue = value + " \n";
$(this).val(newValue);
});
});
Lorsque le formulaire est soumis, cependant, la valeur de chaque champ de formulaire n'a pas le saut de ligne.
Mon objectif est de faire le saut de ligne à survivre à la sortie de la forme de traitement, ce qui génère un e-mail. Depuis je n'ai pas de contrôle sur le script qui génère le mail, je vais essayer d'imposer une mise en forme à ce que je peux contrôler.
Toute aide est appréciée.
Ce t venir à travers dans l'e-mail? Est le message généré certainement en texte brut? Si non, et ses un mail en HTML, le saut de ligne personnage aura aucun effet.
Le courrier qui est généré est du texte brut. Ce qui vient à travers, en utilisant le code ci-dessus, est le texte saisi les valeurs, avec un espace supplémentaire à la fin.
+1 Bienvenue sur StackOverflow, @theJBRU!
OriginalL'auteur theJBRU | 2010-01-28
Vous devez vous connecter pour publier un commentaire.
J'ai posté ma réponse précédente avant que j'ai vu votre commentaire que la sortie est du texte brut. Maintenant, essayez ceci:
Réponse Précédente
Comme le dit Marc, le caractère de saut de ligne n'est pas rendu comme un saut de ligne lors de l'affichage dans le navigateur (ou le client de messagerie d'ailleurs), donc au lieu de l'ajout d'un caractère de saut de ligne "\n", vous devez ajouter un
<br/>
La deuxième approche est basée sur le conseil donné par Teja Kantamneni, mais au lieu d'attribuer la valeur de foo zone de texte de la barre de caché d'entrée, je suis tout simplement en utilisant le même nom pour le caché d'entrée, de cette façon, le backend script obtenez la paire nom-valeur.
J'aime cette approche, @Majid. Ma première tentative n'a pas fonctionné, car il semble que ce que le script a été reçu des valeurs vides. Par exemple, le script de vérification des erreurs de la pensée de l'e-mail saisie est invalide car il était vide. Donc, je pense que la première chose que je vais faire est de swap ":texte" sélecteur de classe I peuvent s'appliquer à ces champs je veux cette manipulation fait pour. Merci encore.
Il y avait une erreur dans le code que j'ai posté. C'était la dernière ligne qui doit être $("#formID").append(hid); PAS de $("#myform").append(hid); j'ai juste remarqué et corrigé.
OriginalL'auteur Majid Fouladpour
Zone de texte n'est pas titulaire d' "\n" textarea seulement. Ce que vous pouvez faire est de poster vous-même vos données à l'automate ou à stocker les valeurs dans les champs cachés et soumettre le formulaire et de lire les champs masqués dans le serveur, si vous n'avez pas beaucoup de contrôle, il n'correspondre les noms des champs cachés.
OriginalL'auteur Teja Kantamneni