Ver Mensaje Individual
  #12 (permalink)  
Antiguo 24/03/2014, 06:54
bathorz
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: Realizar suma y multiplicación

He visto la página y me pareció interesante.
Prueba de este modo y dime si te sirve.
Código Javascript:
Ver original
  1. window.onload = function() {
  2.         var test = document.getElementById('test');
  3.         var form1 = document.getElementById('form1');  
  4.         var elem = document.getElementsByName('s');
  5.  
  6.         form1.addEventListener('change', function(e) {
  7.           calcular();
  8.         });
  9.  
  10.         function calcular() {
  11.           var detalle = new Array();
  12.           var descripcion_txt = '';
  13.           var estado_txt = '';
  14.           var precio_txt = '';
  15.           var precio = 0;
  16.           var suma_precio = 0;
  17.           var bloque = '';
  18.  
  19.           for (var i = 0; i < elem.length; i++) {
  20.             detalle[i] = elem[i].value.split('|'); // (|) sin espacios
  21.             if (elem[i].value !== '0') {
  22.               descripcion_txt = detalle[i][0] + '<br />';
  23.               estado_txt = detalle[i][1] + '<br />';
  24.               precio_txt = parseInt(detalle[i][2]);
  25.               precio = precio_txt.toFixed(2);
  26.               suma_precio += parseInt(detalle[i][2]);
  27.               bloque += descripcion_txt + estado_txt + precio + '€<hr />';
  28.             }
  29.           }
  30.           suma_precio += suma_precio * 0.07;
  31.           test.innerHTML = bloque + 'Total: ' + suma_precio.toFixed(2) + '€';
  32.         }
  33.       };
Código HTML:
Ver original
  1. <div id="test">test</div>
  2.     <div>
  3.       <fieldset class="form1">
  4.         <legend>Datos</legend>
  5.         <form id="form1" action="#" name="formulario">
  6.           <span class="t_aleta_delantera_izquierda">Aleta delantera</span>
  7.           <span>
  8.             <select name="s"><option value="0">Seleccionar</option><option value="Aleta delantera izquierda|Leve|75">Leve: 75 </option><option value="Aleta delantera izquierda|Medio|90">Medio: 90 </option><option value="Aleta delantera izquierda|Fuerte|120">Fuerte: 120 </option></select></span>
  9.           &nbsp;
  10.           <span class="t_puerta_delantera_izquierda">Puerta delantera</span>
  11.           <span>
  12.             <select name="s"><option value="0">Seleccionar</option><option value="Puerta delantera izquierda|Leve|90">Leve: 90 </option><option value="Puerta delantera izquierda|Medio|110">Medio: 110 </option><option value="Puerta delantera izquierda|Fuerte|120">Fuerte: 120 </option></select></span>
  13.           &nbsp;
  14.           <span class="t_techo">Techo</span>
  15.           <span>
  16.             <select name="s"><option value="0">Seleccionar</option><option value="Techo|Leve|120">Leve: 120 </option><option value="Techo|Medio|150">Medio: 150 </option><option value="Techo|Fuerte|180">Fuerte: 180 </option></select></span>&nbsp;
  17.           &nbsp;
  18.           <span class="t_espejo">Espejos</span>
  19.           <span>
  20.             <select name="s"><option value="0">Seleccionar</option><option value="1 Espejo|Leve|25">1 Leve: 25 </option><option value="2 Espejos|Leve|50">2 Leve: 50 </option><option value="1 Espejo|Medio|40">1 Medio: 40 </option><option value="2 Espejos|Medio|80">2 Medio: 80 </option></select></span>
  21.           &nbsp;
  22.         </form>
  23.       </fieldset>
  24.     </div>