2012-10-11 639 views

Respuesta

55

Si necesita personalizar su área de texto, reproduzca su comportamiento utilizando otro elemento (como un DIV) con el atributo contenteditable.

Es más personalizable, y un enfoque más moderno, textarea es solo para contenido de texto sin formato, no para contenido enriquecido.

<div id='fake_textarea' contenteditable></div> 

Las barras de desplazamiento se pueden reproducir con la propiedad de desbordamiento de CSS.

Se puede utilizar esta área de texto falso en una forma normalmente, es decir: si usted tiene que presentar su contenido a través del método POST, usted podría hacer algo así (con jQuery):

<input type='hidden' id='fake_textarea_content' name='foobar' /> 

...

$('#your_form').submit(function() 
{ 
    $('#fake_textarea_content').val($('#fake_textarea').html()); 
}); 
+4

contenteditable no es todo poines y el arco iris. Este artículo es una gran lectura que me gustaría haber visto antes de tratar de usar contenteditable en algunos de mis proyectos: https://medium.com/content-uneditable/contenteditable-the-good-the-bad-and-the- feo-261a38555e9C# .v0d5rghdl. Parece tan bueno, pero es terriblemente defectuoso. – swelet

4

No puede usar HTML dentro de TEXTAREA.

Desplazamiento se puede aplicar a cualquier elemento mediante la adición de overflow: auto y width fijo y height.

1

Puede utilizar editores html para web como CKEditor para poder formatear los datos en el área de texto. Verifique esto http://ckeditor.com/

8

No puede aplicar estilo al contenido de un área de texto por separado, tiene que usar s, o algo similar.

¿Quieres algo como esto?

http://jsfiddle.net/mekwall/XNkDx/

$('.editable').each(function(){ 
    this.contentEditable = true; 
}); 

Esto le permite editar el contenido de un div, y todavía se verá como un área de texto,

Negrita ahora funcionará.

+3

[http://jsfiddle.net/XNkDx/2199/](http://jsfiddle.net/XNkDx/2199/] Acabo de agregar algunas líneas para mostrarte cómo funciona esto de verdad. Y, +1 para ti mi amigo, pequeño y bonito script – Aleksandar

+0

... Dije que una pregunta era un duplicado de sí mismo. ¿Cómo nadie se dio cuenta? – Deep

0

Otra forma de presentar el área de texto "falso" está incluyendo las siguientes líneas dentro de la etiqueta form

<form onsubmit=" $('#fake_textarea_content').val($('#fake_textarea').html());"> 
</form> 
+2

Creo que dejaste algo fuera de tu respuesta. – Brigham

+0

uppsss .. lo arregló. ¡Aclamaciones! – Christian

Cuestiones relacionadas