Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/12/2009, 08:42
cslbcn
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 11 meses
Puntos: 5
Agrandar TextArea

Hola. Los textarea me llevan por el camino de la amargura...

Con este código, si se hace un salto de línea, el textarea se hace más grande (+1 rows). Hasta aquí todo perfecto. El problema está en que cuando escribo una frase tan larga que una linea no cabe, salta la segunda fila, hace "un salto de linea" y no sé como detectar eso.

Sólo puedo detectar los saltos de linea hechos con el intro: lineas=area.split('\n');

Pero como puedo detectar un salto de linea solo escribiendo texto?

Os pongo un enlace con un ejemplo.
http://www.unwrongest.com/projects/elastic/

Más abajo está mi codigo.
P.D. No quiero recurrir a un código ya hecho como el del ejemplo.


Código Javascript:
Ver original
  1. function agrandar(e){      
  2.            
  3. var code = (document.all) ? event.keyCode:e.which;
  4. var ctrl = (document.all) ? event.ctrlKey:e.modifiers & Event.CONTROL_MASK;
  5.                    
  6. var k=null;
  7. (e.keyCode) ? k=e.keyCode : k=e.which;
  8. area=document.forms['formulario'].TAestado.value;
  9. lineas=area.split('\n');
  10.            
  11. for(i in lineas){
  12.     var ubound=i;
  13. }      
  14.            
  15. ubound=new Number(ubound)+1;
  16. if (ubound>10){
  17.     document.forms['formulario'].TAestado.rows=10;
  18.     document.getElementById('TAestado').className="TAestadoMax";
  19. }else{
  20. if(k==13 ){            
  21.                
  22.     document.forms['formulario'].TAestado.rows
  23.         document.forms['formulario'].TAestado.rows +1; 
  24. }
  25. else
  26. {
  27.     document.forms['formulario'].TAestado.rows=ubound;
  28.     document.getElementById('TAestado').className="TAestadoNor";
  29. }                  
  30. }
  31. if (ubound==1){
  32. document.forms['formulario'].TAestado.rows=2;
  33. }                      
  34. }


Código HTML:
Ver original
  1. <textarea  style="width:700px" rows="1" Id="TAestado" onkeydown="agrandar(event)" >¿En qué piensas?</textarea>