Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/02/2014, 10:24
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Vista preliminar de un formulario en un textarea

Solamente necesitas evitar el comportamiento natural del evento submit, el cual consiste en enviar los datos del formulario hacia otro archivo (o a veces hacia el mismo) para su procesamiento, para lo cual puedes echar mano del método preventDefault, luego debes recorrer los campos contenidos en el formulario y asignar sus valores al textarea.

Código HTML:
Ver original
  1. <form id = "formulario">
  2.     Nombre: <input type = "text" id = "nombre" name = "nombre" /> <br />
  3.     Edad: <input type = "text" id = "edad" name = "edad" /> <br />
  4.     E-Mail: <input type = "email" id = "email" name = "email" /> <br />
  5.     <input type = "submit" value = "Enviar" />
  6. </form>
  7.  
  8. Datos: <br />
  9. <textarea id = "datos" readOnly></textarea>

Código Javascript:
Ver original
  1. var formulario = document.getElementById("formulario"),
  2.     textarea = document.getElementById("datos");
  3.  
  4. formulario.addEventListener("submit", function(e){
  5.     e.preventDefault(); //Aquí evito el envío de los datos
  6.     for (i = 0, limite = formulario.elements.length; i < limite; i++)
  7.         if (formulario.elements[i].getAttribute("type") != "submit")
  8.             textarea.value += (formulario.elements[i].name).charAt(0).toUpperCase() + (formulario.elements[i].name).slice(1) + ": " + formulario.elements[i].value + "\n";
  9. }, false);

Así es como se ve: http://jsbin.com/nuko/1

Y si quieres que luego de unos segundos, se realice el envío de los datos, añade esto justo antes de cerrar la llave }:

Código Javascript:
Ver original
  1. setTimeout(function(){
  2.     formulario.submit();
  3. }, 5000);

Con el método setTimeout, ejecuto el envío de los datos del formulario luego de 5 segundos desde que el usuario pulse el botón "Enviar".

Con el método charAt, obtengo el caracter ubicado en la posición indicada en una cadena, con el método toUpperCase, convierto a mayúscula el caracter que le haya pasado, en este caso, el caracter que extraje de la cadena con el método anterior, mientras que con el método slice, obtengo una porción de una cadena desde la posición especificada. En este ejemplo, utilizo estos tres métodos para obtener la primera letra del valor del atributo name de cada caja de texto en el formulario, la convierto a mayúscula y le añado el resto de la cadena, de este modo, cuando se muestren los datos en el textarea, será de esta forma:

Código HTML:
Ver original
  1. Nombre: Juan
  2. Edad: 34

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand