Insérer un saut de ligne à l'intérieur de l'espace réservé attribut d'un textarea?
J'ai tenté quelques approches, mais aucune n'a fonctionné. Quelqu'un sait-il a le truc astucieux pour contourner ce problème?
<textarea placeholder='This is a line \n this should be a new line'></textarea>
<textarea placeholder='This is a line
should this be a new line?'></textarea> <!-- this works in chrome apparently -->
Mise à JOUR: Il ne fonctionne pas sous chrome. C'était juste le textarea de la largeur.
Voir: http://jsfiddle.net/pdXRx/
- Si vous utilisez PHP, vous pouvez mettre
<?="\n"?>
comme une nouvelle ligne - Juste ajouter
dans l'espace réservé à l'attribut, comme<textarea placeholder="This is a line This is another one"></textarea>
. La réponse est en bas. - cela fonctionne dans Chrome, IE mais pas sous Firefox et Safari.
- Je sais, c'est très triste
- Je l'ai testé il y a une minute dans Firefox 60.0.2 et maintenant ça fonctionne. Peut-être qu'il serait de travailler dans la plupart des navigateurs maintenant.
Vous devez vous connecter pour publier un commentaire.
Ce que vous pourriez faire est d'ajouter le texte que
value
, qui respecte le saut de ligne\n
.Ensuite, vous pouvez retirer sur
focus
et de l'appliquer de retour (si vide) surblur
. Quelque chose comme ceciExemple: http://jsfiddle.net/airandfingers/pdXRx/247/
Pas pur CSS et pas propre mais le truc.
if($(this).val() == 'This is...')
à lafocus
gestionnaire, sinon, si vous ajoutez du texte, puis perdre le focus, puis cliquez sur la zone de texte, votre texte disparaît.$.fn.attr('value')
de 1,6 à 1,9 (1.9 est la version jQuery que j'ai utilisé dans mon violon, et c'est la raison pour laquelle le violon n'est pas de travail. Je vais trouver à partir de quelle version de l'utilisation exactement modifiée et mise à jour le commentaire plus tard). de toute façon, pour jQuery 1.9+,$.fn.val()
doit être utilisé dans ce cas. Merci pour l'excellente solution.Vous pouvez insérer une nouvelle ligne en entité html
à l'intérieur de l'espace réservé attribut:<textarea name="foo" placeholder="hello you Second line Third line"></textarea>
Fonctionne sur:
Chrome 62, IE10
Ne fonctionne pas sur:
Firefox 57, Safari 11
https://jsfiddle.net/lu1s/bxkjLpag/2/
littéralement, sans produire d'un caractère d'espacement. Voir developer.mozilla.org/en/HTML/HTML5/...
de l'espace réservé et de les convertir en\n
et de les transmettre à la valeur de l'attribut de l'élément textarea. Enfin, remplacez l'espace réservé pour une chaîne vide.Ne pense pas que vous êtes autorisé à le faire: http://www.w3.org/TR/html5/forms.html#the-placeholder-attribute
Le contenu pertinent (l'emphase est mienne):
Mise à JOUR (Janvier 2016): Le joli petit hack peut ne pas fonctionner sur tous les navigateurs plus donc j'ai une nouvelle solution avec un peu de javascript ci-dessous.
Un Bon Petit Hack
Il ne se sent pas belle, mais vous pouvez juste mettre les nouvelles lignes dans le code html. Comme ceci:
Avis de chaque ligne est sur une nouvelle ligne (non enveloppé) et chaque onglet' indentation de 4 espaces. Accordée il n'est pas très agréable, mais il semble fonctionner:
http://jsfiddle.net/01taylop/HDfju/
resize: none;
dans le css de sorte que la taille de la zone de texte est fixe (Voir jsfiddle).Sinon
Quand vous voulez une nouvelle ligne, appuyez sur entrée deux fois (Donc il y a une ligne vide entre votre "nouvelle ligne". Cette "ligne vide" créé doit avoir assez de tabulations et les espaces qui équivaut à la largeur de votre textarea. Il ne semble pas d'importance si vous avez beaucoup trop, vous avez juste besoin d'assez de. C'est tellement sale, bien que probablement pas navigateur compatible. Je souhaite qu'il y avait un moyen plus facile!
Une Meilleure Solution
Découvrez la JSFiddle.
box-sizing
etdisplay: block
propriétés dans le textarea sont importantes ou de la div derrière ce ne sera pas la même taille.resize: vertical
et unmin-height
sur le textarea sont également importants - notez la façon dont le texte de l'espace réservé s'occupera de l'emballage et de l'expansion de la textarea gardera le fond blanc. Toutefois, en commentant laresize
propriété entraîner des problèmes lors de l'expansion de la zone de texte à l'horizontale.HTML:
SCSS:
Javascript:
Comment faire un CSS solution: http://cssdeck.com/labs/07fwgrso
Salaamun Alekum
Travaille Pour Google Chrome
Merci
Nan tu ne peux pas faire que dans l'espace réservé à l'attribut. Tu ne peux pas le même codage html des retours à la ligne comme
dans un espace réservé.Une petite démo:
http://jsfiddle.net/pdXRx/5/
Utilisation
en place de/n
cela va changer la ligne.\n
?Vous ne pouvez pas le faire avec le HTML pur, mais ce plugin jQuery qui va vous permettre de: https://github.com/bradjasper/jQuery-Placeholder-Newlines
$('input, textarea').placeholder();
avec cette$('input[placeholder], textarea[placeholder]').placeholder();
Essayez ceci:
http://jsfiddle.net/vr79B/
Une légère amélioration de la version de Jason Gennaro de réponse (voir les commentaires dans le code):
J'ai aimé le travail de Jason Gennaro et Denis Golomazov, mais je voulais quelque chose qui serait plus globalement utiles. J'ai modifié le concept de sorte qu'il peut être ajouté à n'importe quelle page sans répercussion.
http://jsfiddle.net/pdXRx/297/
Le javascript est très simple
J'ai modifié @Richard Bronosky violon comme ceci.
Il est préférable d'utiliser
data-*
attribut plutôt que d'un attribut personnalisé.J'ai remplacé
<textarea placeholdernl>
à<textarea data-placeholder>
et certains autres styles.édité
Ici est le fait que Richard réponse originale à cette question qui contient plein d'extraits de code.
HTML
JS
très simple
valeur représente la chaîne d'origine
Découvrez cette solution avec la coutume de l'espace réservé.
Démo sur le violon.
JS:
CSS:
HTML:
Je n'aime pas cacher l'espace réservé lorsque vous vous concentrez le textarea. J'ai donc fait une fonction constructeur
Placeholder
qui ressemble exactement à la intégré dans un espace réservé et travaille également dans d'autres navigateurs que Chrome de Google. Il est très pratique car vous pouvez utiliser lePlaceholder
fonction aussi souvent que vous le souhaitez et il n'a même pas besoin de jQuery.EDIT:
Maintenant il gère également des cas particuliers, comme l'insertion de l'espace réservé, correctement.
JS:
CSS:
HTML:
Textarea respecte l'espace de l'attribut de l'espace réservé. https://www.w3schools.com/cssref/pr_text_white-space.asp
Le paramètre pre-line a résolu le problème pour moi.
CSS:
HTML: