2011-09-07 2 views
5

Je voudrais savoir si est possible de faire un <input> tag avec l'apparence comme multi-ligne (similaire au <TEXTAREA></TEXTAREA>) en utilisant CSS ou une autre option, malheureusement, je peux remplacer le tag avec dans mon application web.Comment faire un <input> tag multi line?

<input id="uxMessage" validation="required" name="uxMessage" type="text" /> 

Merci beaucoup

+0

Non, à moins que vous le mettez dans un 'textarea' en quelque sorte. Vous * pourriez * le faire relativement facilement avec jQuery, cependant. –

+0

Vous pouvez styler une zone de texte pour qu'elle soit plus grande, mais je suis presque sûre que ce sera toujours une seule ligne. –

+0

oui Jeremy est toujours une seule ligne. – GibboK

Répondre

8

<input type="text" /> toujours seulement une ligne; Vous ne pouvez pas forcer un comportement de ligne multiple avec CSS ou JavaScript. Vous devrez utiliser un <textarea> au lieu d'un <input>.

Vous pouvez utiliser jQuery et sa méthode .replaceWith() pour remplacer le <input> ciblé par un <textarea>. Cependant, cela a des mises en garde évidentes, comme ceux qui visitent votre page sans JavaScript sur.

Exemple:

<input id="uxMessage" validation="required" name="uxMessage" type="text" /> 

$("#uxMessage").replaceWith('<textarea id="uxMessage" name="uxMessage"></textarea>'); 
2

Non sans Javascript assez costaud, Textarea est la seule entrée de texte sur plusieurs lignes que je connaisse.

Modifier

Quelque chose comme cela pourrait fonctionner avec jQuery:

var textArea = jQuery('<textarea />').attr({'id': 'uxMessage', 'name': 'uxMessage'}); 
jQuery('#uxMessage').replaceWith(textArea);