Actualmente estoy trabajando en una aplicación de ventas internas para la empresa para la que trabajo y tengo un formulario que permite al usuario cambiar la dirección de entrega.
Ahora creo que se vería mucho mejor, si el área de texto que estoy usando para los detalles de la dirección principal solo ocupara el área del texto y automáticamente cambiara de tamaño si se cambiara el texto.
Aquí hay una captura de pantalla actualmente.
¿Algunas ideas?
@Chris
Un buen punto, pero hay razones por las que quiero que cambie de tamaño. Quiero que el área que ocupa sea el área de la información que contiene. Como puede ver en la captura de pantalla, si tengo un área de texto fija, ocupa bastante espacio vertical.
Puedo reducir la fuente, pero necesito que la dirección sea grande y legible. Ahora puedo reducir el tamaño del área de texto, pero luego tengo problemas con las personas que tienen una línea de dirección que toma 3 o 4 (una toma 5) líneas. Necesitar que el usuario use una barra de desplazamiento es un gran no-no.
Supongo que debería ser un poco más específico. Estoy tras el cambio de tamaño vertical, y el ancho no importa tanto. El único problema que ocurre con eso es que el número ISO (el "1" grande) se coloca debajo de la dirección cuando el ancho de la ventana es demasiado pequeño (como puede ver en la captura de pantalla).
No se trata de tener un truco; se trata de tener un campo de texto que el usuario pueda editar y que no ocupe espacio innecesario, pero que muestre todo el texto que contiene.
Aunque si a alguien se le ocurre otra forma de abordar el problema, yo también estoy abierto a eso.
Modifiqué un poco el código porque estaba actuando un poco extraño. Lo cambié para que se active al presionar la tecla, porque no tomaría en consideración el carácter que se acaba de escribir.
resizeIt = function() {
var str = $('iso_address').value;
var cols = $('iso_address').cols;
var linecount = 0;
$A(str.split("\n")).each(function(l) {
linecount += 1 + Math.floor(l.length / cols); // Take into account long lines
})
$('iso_address').rows = linecount;
};