Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/01/2014, 12:51
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: Hacer calculos de los input recibidos

Lo único que tienes que haces es asignarle un Id a cada caja de texto y cuando realices el envío de datos del formulario, cancelas la acción del evento submit, realizas el cálculo, lo muestras y luego de unos segundos, envías los datos del formulario para su procesamiento.

Código HTML:
Ver original
  1. <form id = "miFormulario" action = "proceso.php" method = "post">
  2.     Largo: <input type = "text" name = "largo" id = "largo" />
  3.     Ancho: <input type = "text" name = "ancho" id = "ancho" />
  4.     Altura: <input type = "text" name = "altura" id = "altura" />
  5.     Metros cúbicos: <input type = "text" name = "calculo" id = "calculo" readOnly />
  6.  
  7.     <input type = "submit" value = "Calcular y Enviar" />
  8. </form>

Código Javascript:
Ver original
  1. var formulario = document.getElementById("miFormulario");
  2.  
  3. formulario.addEventListener("submit", function(event){
  4.     var largo = Number(document.getElementById("largo").value),
  5.         ancho = Number(document.getElementById("ancho").value),
  6.         altura = Number(document.getElementById("altura").value),
  7.         metrosCubicos = document.getElementById("calculo");
  8.     event.preventDefault();
  9.     metrosCubicos.value = largo * ancho * altura;
  10.     setTimeout(function(){
  11.         formulario.submit();
  12.     }, 3000);
  13. }, false);

En el documento HTML, tengo un formulario, el cual contiene 3 cajas de texto en donde ingresaré los valores a procesar, además de una cuarta caja que es en donde se mostrará el resultado de dicho cálculo y un botón para enviar los datos del formulario hacia el archivo "proceso.php" que es el que indico en el atributo action del formulario.

En el código JS, tomo al formulario por su Id, luego, con el método addEventListener, le añado el evento submit como evento escuchador, el cual al producirse, ejecutará una función. En dicha función, tomo los valores de las 3 cajas de texto del formulario, los cuales son convertidos a tipo numérico con la función Number(), ya que se considera como una cadena de caracteres a todo valor contenido en una caja de texto, por lo que no podría realizar operaciones matemáticas; además, tomo a la caja en donde se mostrará el resultado, evito que se produzca el comportamiento natural del evento submit que es el de enviar los valores del formulario hacia un archivo de destino en el que se les procesará, para lo cual hago uso del método preventDefault. Luego de esto, realizo la multiplicación de los valores ingresados y los asigno a la caja de texto en donde quiero que se muestre el resultado.

Finalmente, con el método setTimeout, ejecuto una función transcurridos 3000 milisegundos o 3 segundos. En dicha función, enviaré los datos del formulario hacia el archivo "proceso.php" que es el que se indicó en su atributo action, para lo cual hago uso del método submit().

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

Última edición por Alexis88; 24/01/2014 a las 13:03