Foros del Web » Creando para Internet » HTML »

Negrita en un TEXTAREA

Estas en el tema de Negrita en un TEXTAREA en el foro de HTML en Foros del Web. Hola, ¿puedo dar formato 'negrita' a parte del texto que muestro en un TEXTAREA? ¿como? Si añado la etiqueta <b>...</b> se ve dentro del textarea: ...
  #1 (permalink)  
Antiguo 16/06/2005, 09:55
j@n
 
Fecha de Ingreso: febrero-2004
Mensajes: 178
Antigüedad: 20 años, 8 meses
Puntos: 0
Pregunta Negrita en un TEXTAREA

Hola,
¿puedo dar formato 'negrita' a parte del texto que muestro en un TEXTAREA?
¿como?

Si añado la etiqueta <b>...</b>
se ve dentro del textarea: <b>texto</b>

Gracias
espero su ayuda.
j@n
  #2 (permalink)  
Antiguo 17/06/2005, 04:44
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
... supongo es para ponerlo en un textarea tuyo... para una página tuya.. pués no podrás poner etiquetas HTML y que te respondan así como así... solo que "el dueño" de dicho textarea lo establesca así... pero hasta ahora núnca he visto eso...

Pero bueno, si es para tí... supongo lo que buscas es un editor... buscalo así en el foro de JavaScript y encontrarás información y enlaces hacia editores prefabricados... específicamente hay un post que tiene un link hacia un blog donde enlistan gran cantidad de editores. Dentro de los más famosos ( mejor dicho, de los que conosco ) están el HTMLArea y el FKCEditor... buscalos así en google...ç

Si quieres hacer tu editor... te ayudarán en el foro de JS (en tu busqueda igual hayarás referencias de esto...)

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 17/06/2005, 07:25
j@n
 
Fecha de Ingreso: febrero-2004
Mensajes: 178
Antigüedad: 20 años, 8 meses
Puntos: 0
¿y un enter?

no quería complicarlo tanto.... sólo quiero 'pintar' en el textarea el texto que el usuario ha introducido en la página anterior.... con algunas modificaciones : por eso necesitaba la negrita !

¿se puede añadir un ENTER en un textarea?

Espero su ayuda.
Gracias
j@n
  #4 (permalink)  
Antiguo 17/06/2005, 07:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola:

para poner un retorno de carro, prueba poniendo \n

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 17/06/2005, 17:28
 
Fecha de Ingreso: noviembre-2004
Mensajes: 32
Antigüedad: 20 años
Puntos: 0
hola, para hacer lo que deseas hacer sería por CSS muy simple:

.formulario{
font-weight: bold;
}

<textarea class="formulario"></textarea>

Saludos!
PD

Para que sea en todos los textarea sería:

textarea{
font-weight: bold;
}
  #6 (permalink)  
Antiguo 20/06/2005, 08:56
j@n
 
Fecha de Ingreso: febrero-2004
Mensajes: 178
Antigüedad: 20 años, 8 meses
Puntos: 0
no funciona eso

Hola, gracias por vuestras respuestas... pero no consigo hacer lo que necesito.

1) ENTER: Si añado \n al texto: VEO "texto\n" dentro del textarea
2) NEGRITA: Necesito que parte del texto esté en negrita, y el resto no. No TODO el texto.

¿Alguna pista?
Thanks

j@n
  #7 (permalink)  
Antiguo 20/06/2005, 22:48
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
¿qué hay con la "pista" que te dejé... es lo que buscas...
Cita:
Iniciado por jam1138
(...) lo que buscas es un editor... buscalo así en el foro de JavaScript y encontrarás información y enlaces hacia editores prefabricados... (...)
Si no sabes de JavaScript lo más sencillo es que implementaras uno ya hecho (de verdad hay unos muuuy simples)... pero si quieres hacer el tuyo... insisto, información encontrarás allá, deberás estudiarlo... seguro hay algo en las FAQ que te servirá...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 25/06/2005, 19:42
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Hola todos :

seguramente estoy llegando tarde. Lo que ocurre es que hallé un viejo disco traspapelado ( ¿'trasdisquetado'? ) donde alguna vez trabajé con códigos que tenía completamente olvidados. Y uno era sobre destacar o resaltar texto dentro de un textarea.

En el original, lo que buscaba era simular un highlight o background-color amarillo tras algunas palabras, pero al probarlo hoy descubro ( o redescubro ) que solamente funciona con fuente Courier New, y en algunas configuraciones, ni así.

Terminé cambiando el resaltado por un subrayado en rojo. Esto parece andar bien. Al menos en Internet Explorer, donde lo probé.

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<title>DESTACA EN TEXTAREA. </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<SCRIPT>
var eco=false;

function rell(){
frm.atras.value = frm.adelante.value;
frm.atras.scrollTop = frm.adelante.scrollTop;
}

function busq(){
var reemplaza = "";
var texto = frm.atras.value;
var acierto = frm.aBuscar.value;

for (r=0; r<acierto.length; r++){
reemplaza += "_"; 	/*"\u2588"*/
}
resultado = texto.replace(acierto, reemplaza);
if(acierto=="" || resultado==""){
alert("Complete todos los campos.");
eco=false }
else{
frm.atras.value=resultado;
delta=texto.indexOf(acierto);
if(eco && delta!=-1){
busq();}
else eco=false;
}
}

function mueve(T){
var despl = T.scrollTop;
frm.atras.scrollTop = despl;
}
</SCRIPT>

<STYLE>
#contenedor {
	POSITION: relative; HEIGHT: 100px
}
#atras {
	COLOR: #f00; FONT-SIZE: 16px; BACKGROUND: none transparent scroll repeat 0% 0%; FONT-FAMILY: "courier new"; POSITION: absolute; HEIGHT: 100px
}
#adelante {
	FONT-SIZE: 16px; BACKGROUND: none transparent scroll repeat 0% 0%; FONT-FAMILY: "courier new"; POSITION: absolute; HEIGHT: 100px
}
</STYLE>

</HEAD>
<BODY onload="rell()">
<h2>Permite subrayar b&uacutesquedas en un <tt>tesxtarea</tt>.</h2>

<FORM name=frm>buscar <BR>
<INPUT value="UIO" name="aBuscar"><BR><BR>
en 
<DIV id=contenedor><TEXTAREA id="atras" name="atras"></TEXTAREA> 
<TEXTAREA onpaste="rell()" id="adelante" onkeyup="rell()" onscroll="mueve(this)" name="adelante" onselect="rell()">QWERTYUIOP...

QWERTYUIOP

QWERTYUIOP

QWERTYUIOP ASDFGH ZXCVBNM

QWERTYUIOP

ASDFGHJK
qwertyuiop
</TEXTAREA> 
</DIV><BR><BR>

<BUTTON onclick="busq()">BUSCAR SIGUIENTE</BUTTON>
<BUTTON onclick="eco=true; rell(); busq()">BUSCAR TODOS</BUTTON> 
<BUTTON onclick="rell()">LIMPIA B&Uacute;SQUEDA</BUTTON> 
</FORM></BODY></HTML>
Cabe aclarar que esta es una pregunta sempiterna en el foro; a pesar de que por definición se entiende que el textarea fue hecho para permitirnos escribir texto plano, sin formato; y si le cambiamos esa característica dejaría de ser un textarea para ser -p.e.- un htmlarea.

Usé el buscador para elegir uno de los tantos temas donde responder y me quedé con éste, porque me parece que el código se acerca a tu pregunta, j@n, aunque no sea negrita.

Una última aclaración : el comentario que está junto a la variable 'reemplaza +=' es el caracter para la simulación de bgColor. Si a alguien se le ocurre cómo hacer para que funcione bien, le agradezco que lo postée aquí. y si alguien ya lo resolvió en otro tema, también le agradezco que ponga un enlace.

Y hablando de enlace, dejo éste por si te sirve de algo

Select + TextArea

saludos

furoya
  #9 (permalink)  
Antiguo 05/10/2005, 13:18
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Hola de nuevo :

vuelvo por una duda sobre el código que puse arriba.

Lo probé en Firefox y no anda. Lo más extraño es que al hacer un click me avisa que va a mandar información (¿A quiéeeen? ), luego me bloquea el documento y en la barra de dirección aparecen variables que no deberían estar allí (¿o sí?).

Aunque no entiendo que pasa, lo arreglé con un return false en los botones.

Pero lo que no pude hacer es leer el desplazamiento del textarea.

¿Hay alguna forma de conseguir el valor en pixeles en Mozilla?

Gracias

furoya
  #10 (permalink)  
Antiguo 05/10/2005, 15:18
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 9 meses
Puntos: 9
Para pintar en negrita en un texarea vas a tener que recurrir a un script.

Para el retorno de carro, prueba con esto:

<textarea style="white-space:pre;">



te respetara los espacios en blanco y los retornos de carro.


furoya., el programa funciona en IE y en Firefox he visto que se muestra el subrayado un instante ,y en la consola javascript te recomienda usar "document.getElementById". ,Nescape no traga, pero Nescape tiene su continuacion con Firefox sino me equivoco. Yo, personalmente ,estoy dejando de probar en Nestcape, me parece inutil probar en un explorador anticuado. Espero me corrijan.


  #11 (permalink)  
Antiguo 05/10/2005, 15:39
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 9 meses
Puntos: 9
Furoya, he estado probando la aplicacion del fondo a partes del textarea con el codigo hexadecimal que pusiste "u2588"., en IE se muestra el fondo rojo de la palabras a buscar, pero las demas palabras tienen una sombra roja. Sin embargo netscape muestra solo lo esperado, pero desaparece tan pronto como aparece., para compatibilizar la manipulacion de objetos con Firefox se hace nesesario recurrir a document.getElementById.
  #12 (permalink)  
Antiguo 22/01/2009, 09:06
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Respuesta: Negrita en un TEXTAREA

Actualicé el ejemplo que puse arriba. Lo pongo en un mensaje nuevo porque no puedo actualizar las observaciones de programeitor en una edición.

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
<title>DESTACA EN TEXTAREA. </title>
<script type="text/javascript">
var eco = false;
var txtAt , txtAd;

function rell(){
txtAt = document.getElementById("atras");
txtAd = document.getElementById("adelante");

txtAt.value = txtAd.value;
txtAt.scrollTop = txtAd.scrollTop;
}

function busq(){
var reemplaza = "";
var texto = txtAt.value;
var acierto = document.getElementById("aBuscar").value;

for (r=0; r<acierto.length; r++){
reemplaza += "_"; 	/*"\u2588" highlight; "—" tachado; "¯" sobrerrayado*/
}
resultado = texto.replace(acierto, reemplaza);
if(acierto == "" || resultado == ""){
alert("Complete todos los campos.");
eco = false }
else{
txtAt.value = resultado;
delta = texto.indexOf(acierto);
if(eco && delta != -1) busq();
else eco = false;
}
mueve();
}

function mueve(){
txtAt.scrollTop = txtAd.scrollTop;
txtAt.scrollLeft = txtAd.scrollLeft;
setTimeout("txtAt.scrollTop = txtAd.scrollTop; txtAt.scrollLeft = txtAd.scrollLeft", 300);
}

onload = rell;
</script>
<style type="text/css">
body {
	font-size: 100%;
}
#contenedor {
	position: relative; height: 200px;
}
#atras, #adelante {
	color: #000; font-size: 12px; background-color: transparent; font-family: "courier new", monospace; position: absolute; height: 150px; resize:none;
}
#atras {
	color: #f00; 
}
</style>

</head>
<body>
<h2>Permite subrayar b&uacute;squedas en un <tt>textarea</tt>. (IE7.0, FF3.0, Op9.6, Ch0.2)</h2>

<form>buscar <br>
<input value="ORO" id="aBuscar"><br><br>
en 
<div id=contenedor><textarea id="atras"></textarea> 
<textarea id="adelante" onpaste="rell()" onselect="rell()" onkeyup="rell()" onscroll="mueve()" onmousemove="mueve()" onmousewheel="mueve()">FOROSDELWEB...

FOROS DEL WEB

FOROS DEL WEB

FOROS DEL WEB QWERTYUIOP_QWERTYUIOP

FOROS DEL WEB

QWERTYUIOP
forosdelweb
</textarea> 
</div><br><br>

<button onclick="busq(); return false">BUSCAR SIGUIENTE</button>
<button onclick="eco=true; rell(); busq(); return false">BUSCAR TODOS</button> 
<button onclick="rell(); return false">LIMPIA B&Uacute;SQUEDA</button> 
</form></body></html> 
Ahora funciona.
Lo de la fuente no tiene arreglo; si no contiene el caracter 2588 (de bloque entero), lo toma de alguna otra fuente que no va a tener el mismo ancho, y aparece esa sombra o todo el texto desfasado.

Firefox sigue sin reconocer los name de formulario. Los cambié por identificadores.
Lo del desplazamiento con la barra se "arregló"; el escript puede leer la posición de la capa de adelante y pasarla a la de atrás. La ruedita del ratón es un tema aparte. Mozilla aún no interpreta el evento con onmousewheel (y probablemente no lo hará), pero si detecta el movimiento con onscroll. Como la dirección en este caso se puede leer con JS, casi tenemos resuelto el problema.

Opera sí lo acepta, aunque la velocidad de lectura de la posición de escroll deja bastante que desear. Hay un pequeño 'truco' con setTimeout para asegurarnos de que ambas capas siempre se vean a la misma altura (con una pequeña demora). Aunque no funciona con los botones de desplazamiento de la barra.

Chrome trae un nodo para redimensionar por default, se lo quité con CSS porque no hay evento para eso y no me deja igualar las capas.

Seguramente con HTMLArea o un div editable nos ahorramos todos los problemas, pero esto era como un desafío, y había quedado inconcluso.

Está de más decir que el 'buscador' es una excusa para mostrar el efecto funcionando, hay mejores en este foro, y en el ejemplo hay algún bug.
  #13 (permalink)  
Antiguo 28/01/2009, 21:46
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 9 meses
Puntos: 9
Respuesta: Negrita en un TEXTAREA

Valla furoya, recuerdo el tema, pero no los detalles...

Lo he probando en IE y subraya las coincidencias, pero sigo resistiendome a las dobles capas.

IE admite bastante html en un texarea si se le añade mediante appendChild:

Código PHP:
<html><head><style>
#area b{color:red;font-size:120%;}
</style><script>
function 
fun()
{
var 
area=document.getElementById("area"),
texto=area.value,
cadena=document.getElementById("cadena").value
if(cadena.length==0){alert("no hay nada que resaltar");return}
if(
texto.length==0){alert("no hay texto para resaltar");return}
var 
div=document.createElement("div"),
n=0,
ntexto=""
while(true)
{
n=texto.indexOf(cadena)
if(
n==-1){ntexto+=texto.substring(0);break}
ntexto+=texto.substring(0,n)+"<b>"+cadena+"</b>"
texto=texto.substring(n+cadena.length)
}
div.innerHTML=ntexto
area
.value=""
area.appendChild(div)
delete div
}
</script></head><body>
<input id="cadena" type="text" value="sanroque">
<input type="button" value="resaltar" onclick="fun()"><br>
<textarea id="area" rows="30" cols="80">
El perro de sanroque no tiene rabo
 por que los sanroqueños se lo han cortado
</textarea>
</body></html> 
Aun no lo he probado en otros navegadores, ahora no tengo ninguno ,salvo el IE claro.

Saludos.

Última edición por programeitor; 28/01/2009 a las 22:14
  #14 (permalink)  
Antiguo 05/02/2009, 04:13
Avatar de miguel4ngel  
Fecha de Ingreso: febrero-2009
Mensajes: 17
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Negrita en un TEXTAREA

Cita:
Iniciado por Umberto Ver Mensaje
hola, para hacer lo que deseas hacer sería por CSS muy simple:

.formulario{
font-weight: bold;
}

<textarea class="formulario"></textarea>

Saludos!
PD

Para que sea en todos los textarea sería:

textarea{
font-weight: bold;
}
eso mismo hago yo.. defino las que quiero segun se muestre..! los select les hago su propio estilo.. bien bueno..!
  #15 (permalink)  
Antiguo 31/03/2009, 08:49
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 22 años
Puntos: 317
Respuesta: Negrita en un TEXTAREA

Cita:
Iniciado por programeitor
...recuerdo el tema, pero no los detalles...
¡Pero ni hacía falta! Yo soy el pesado que sigo dándole vueltas al asunto, pero no voy a pretender que la gente normal se acuerde.

Ese ejemplo que pusiste está excelente. Y ni te molestes en probarlo en otros navegadores ... aprovecha un bug de IExplorer. "Eso" no debería pasar.

Cita:
Iniciado por miguel4ngel
...eso mismo hago yo...
El problema es que Umberto se equivocó.
j@n dijo claramente que lo quería para una "parte del texto"; y ese código es para "todo".

Pero lo más grave es que vengas 3 años después a felicitarlo por ese error y contarnos que haces lo mismo, que por otro lado no es ningún código original, es simple y puro CSS que está en todos los tutoriales.

A estas alturas ya no puede haber confusiones. La discusión entre programeitor y yo fue demasiado clara.

Uno de los dramas de 'terminar' un tema con un mensaje desubicado es que mucha gente tiene la mala costumbre de leerlo primero, y suponer de qué trata el resto del tema. Al ver como aprueban un código archiconocido, pueden pensar que esa era la respuesta final, y se pierden así otros ejemplos que pueden servirles para desarmar y estudiar.
O mejor aún, para seguir respondiendo correctamente algo que valga la pena leer.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:36.