Foros del Web » Programando para Internet » Javascript »

Cómo puedo cambiar de type="text" a textarea?

Estas en el tema de Cómo puedo cambiar de type="text" a textarea? en el foro de Javascript en Foros del Web. Hola a todos, estoy creando una aplicación para que los usuarios puedan dejar comentarios (algo así como un 'muro') y querría hacer de manera que ...
  #1 (permalink)  
Antiguo 30/09/2010, 13:18
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Cómo puedo cambiar de type="text" a textarea?

Hola a todos, estoy creando una aplicación para que los usuarios puedan dejar comentarios (algo así como un 'muro') y querría hacer de manera que el cuadro para introducir el texto fuera:

Código HTML:
<input type="text" name="comentario"> 
pero que si mientras se está escribiendo, se presiona 'enter' para poner varias líneas, aparezca:

Código HTML:
<textarea name="comentario">(el texto que había antes)</textarea> 
Cómo puedo hacer esto (con javascript)?

Gracias de antemano
  #2 (permalink)  
Antiguo 30/09/2010, 13:47
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 10 meses
Puntos: 79
Respuesta: Cómo puedo cambiar de type="text" a textarea?

algo asi?
me cansé......

********************************


Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
<script>
function cuek(){
	a=document.getElementById("elquecambia")
	if(a.tagName!="TEXTAREA"){
		tipodecambio="textarea"
		e=0
	}else{
		tipodecambio="input"
		e=1
	}
	textoanterior=a.value
	
	p=a.parentNode
	p.removeChild(a)
	t=document.createElement(tipodecambio)
	t.id="elquecambia"
	t.name="elquecambia"
	t.value=textoanterior
	if(e) t.type="text"
	document.getElementById('lb').appendChild(t)
}

</script>
</head>

<body>
<label id="lb">
  <input type="text" name="elquecambia" id="elquecambia" />
</label>
<input type="button" name="button" id="button" value="Bot&oacute;n" onclick="cuek()" />
</body>
</html>
  #3 (permalink)  
Antiguo 30/09/2010, 13:54
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Cómo puedo cambiar de type="text" a textarea?

Sólo habría que añadir para que eso ocurriera al presionar enter.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #4 (permalink)  
Antiguo 30/09/2010, 13:55
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 10 meses
Puntos: 79
Respuesta: Cómo puedo cambiar de type="text" a textarea?

chuta lo hice con un boton, era con enter
pero para que te entretengas y averigues como funciona los event de caputra de teclado, como siempre explorer escapa al comun por eso hay que detectarlo de dos formas por lo menos.

salu2
  #5 (permalink)  
Antiguo 30/09/2010, 13:57
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cómo puedo cambiar de type="text" a textarea?

Muchas gracias me ha servido casi todo. Porque como tengo que enviar este formulario, debe haber un botón del tipo 'submit', y este tipo de botones cumplen su misión, es decir, van a donde les dice el atributo action, cuando se presiona la tecla enter. Es por eso que tengo:

Código HTML:
<form name="formulario" method="post" action="procesa.php">
<label id="lb">
  <input type="text" name="mensaje" id="mensaje" onkeypress="cuek();" />
</label>
<input type="submit" value="Bot&oacute;n"/>
</form>
</body>
</html> 
Y aquí está el problema, quiero que sólo se procese el formulario cuando se presione sobre el botón, no cuando se presione enter. Cómo puedo hacer esto?
  #6 (permalink)  
Antiguo 30/09/2010, 14:04
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 10 meses
Puntos: 79
Respuesta: Cómo puedo cambiar de type="text" a textarea?

cambia submit por button

luego le das un onclik

y en el script colocas:

document.forms.formulario.submit()

parece que es algo asi

salu2


Nota: al pasar de textarea a text, cada salto de linea explorer no separa en cambio FF las reemplaza por un espacio......punto para FF
  #7 (permalink)  
Antiguo 30/09/2010, 14:08
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cómo puedo cambiar de type="text" a textarea?

Bueno gracias pero de todos modos, me va mejor poniendo el evento onClick="quek()" a la caja de texto.
  #8 (permalink)  
Antiguo 30/09/2010, 14:33
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 10 meses
Puntos: 79
Respuesta: Cómo puedo cambiar de type="text" a textarea?

Cita:
Iniciado por 3nr1c Ver Mensaje
Bueno gracias pero de todos modos, me va mejor poniendo el evento onClick="quek()" a la caja de texto.
NO ME ENTENDISTE!!!

es al boton que tienes como submit

es asi

<input type="submit" value="Bot&oacute;n"/>

lo dejas asi

<input type="button" value="Bot&oacute;n" onclick="submitchanta()" />


y en el script la funcion submitchanta() es

document.forms.formulario.submit()

salu2

you know what i mean?
  #9 (permalink)  
Antiguo 30/09/2010, 15:09
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Cómo puedo cambiar de type="text" a textarea?

No me gusta nada enviar un formulario con JS, de toda la vida se envía con un submit, pero para no enviar el formulario con enter hay otras opciones. Prueba:
Código Javascript:
Ver original
  1. //@JavierB
  2. function pulsar(e) {
  3.   tecla = (document.all) ? e.keyCode :e.which;
  4.   return (tecla!=13);
  5. }
Tendrías que añadir en cada campo del form (text o textarea) el vento onkeypress='pulsar(event);'.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #10 (permalink)  
Antiguo 01/10/2010, 06:38
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cómo puedo cambiar de type="text" a textarea?

Cita:
Iniciado por Perr0 Ver Mensaje
Nota: al pasar de textarea a text, cada salto de linea explorer no separa en cambio FF las reemplaza por un espacio......punto para FF
Por eso no hay problema, esto lo arreglo con php al procesar el formulario:

Código PHP:
<?php $_POST['mensaje'] = nl2br($_POST['mensaje']); ?>
Por l demas muchas gracias, eso era lo que buscaba :D

Etiquetas: textarea
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 03:11.