Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Multiplicación de inputs dinamicos

Estas en el tema de Multiplicación de inputs dinamicos en el foro de Javascript en Foros del Web. Buen día, pues tengo un problema, estoy aprendiendo a programar en javascript, y quiero multiplicar inputs dinámicos por medio de javascript y que esto sea ...
  #1 (permalink)  
Antiguo 21/06/2014, 13:20
Avatar de Victor_Jonathan  
Fecha de Ingreso: septiembre-2013
Ubicación: Tlaxcala
Mensajes: 8
Antigüedad: 10 años, 7 meses
Puntos: 0
Multiplicación de inputs dinamicos

Buen día, pues tengo un problema, estoy aprendiendo a programar en javascript, y quiero multiplicar inputs dinámicos por medio de javascript y que esto sea en tiempo real lo que tengo hasta el momento es esto.

codigo javascript.

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.  
  3.  $(AddButton).click(function (c) {
  4.     if (y <=  MaxInputs2)
  5.     {
  6.        
  7.           FieldCount2++;
  8.           $(contenedor2).append('<div class= "price" ><input type="text" name="precio[]" id="preci_'+ FieldCount2 +'" onKeyUp="multiplicaciones()" /> </div>');
  9.           y++;
  10.     }
  11.     return false;
  12.  
  13.    });
  14.  
  15.    var MaxInputs3 = 100; //numero maximo de campos
  16.    var contenedor3 = $("#operacion3");
  17.    var AddButton = $("#agregarCampo");
  18.    
  19.    var z = $("#operacion3 div").length + 1;
  20.    var FieldCount3 = z-1;
  21.    
  22.   $(AddButton).click(function (j) {
  23.     if (z <=  MaxInputs3)
  24.     {
  25.        
  26.           FieldCount3++;
  27.           $(contenedor3).append('<div class= "amount" ><input type="text" name="cantidad[]" id="canti_'+ FieldCount3 +'" onKeyUp="multiplicaciones()" /> </div>');
  28.           z++;
  29.     }
  30.     return false;
  31.  
  32.    });
  33.  
  34.  function multiplicaciones() {
  35.    
  36.  
  37.    
  38.    var precio = document.operaciones["precio[]"].value;
  39.    var cantidad = document.operaciones["cantidad[]"].value;
  40.    try{
  41.       //Calculamos el número escrito:
  42.        precio = (isNaN(parseInt(precio)))? 0 : parseInt(precio);
  43.        cantidad = (isNaN(parseInt(cantidad)))? 0 : parseInt(cantidad);
  44.        document.operaciones["res[]"].value = precio*cantidad;
  45.    }
  46.    //Si se produce un error no hacemos nada
  47.    catch(e) {}
  48. }
  49.  
  50. });

codigo html
Código HTML:
Ver original
  1. <form name= "operaciones">
  2.                    
  3.                 <div id= "operacion">
  4.                     <div class= "description">
  5.                     <input type="text" name="descripcion[]" id= "descri_1" />
  6.                     </div>
  7.                 </div>
  8.                
  9.                 <div id= "operacion2">
  10.                     <div class= "price">
  11.                     <input type="text" name="precio[]" id= "preci_1" onKeyUp="multiplicaciones()" />
  12.                     </div>
  13.                 </div>
  14.                
  15.                 <div id= "operacion3">
  16.                     <div class= amount>
  17.                     <input type="text" name="cantidad[]" id= "canti_1" onKeyUp="multiplicaciones()" />
  18.                     </div>
  19.                 </div>
  20.                
  21.                  <div id= "operacion4">
  22.                     <div class= tota>
  23.                     <input type="text" name="res[]" id= "totals_1" />
  24.                     </div>
  25.                    
  26.                     </form>

El asunto es que no multiplica los campos, si alguien me pudiera explicar se lo agradeceria mucho, los campos que se tienen que multiplicar son cantidad y precio, el resultado se tiene que visualizar en res. Gracias
  #2 (permalink)  
Antiguo 21/06/2014, 19:01
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Multiplicación de inputs dinamicos

No necesitas jQuery para eso .. la ventaja de como lo has planteado es que si decides agregar un campo "IVA" o "impuestos" ... no hay que hacer mucho para calcular el IVA en cada item

Código Javascript:
Ver original
  1. <form  method="post" action="#" name="operaciones">                    
  2.  
  3. <!-- cortar aqui -->
  4.                 <div id= "operacion">
  5.                     <div class= "description">
  6.                     Articulo:<br/>
  7.                     <input type="text" name="descripcion[]" id= "descri_1"/>
  8.                     </div>
  9.                 </div>
  10.                
  11.                 <div id= "operacion2">
  12.                     <div class= "price">
  13.                     Precio:<br/>
  14.                     <input type="text" name="precio[]" id= "preci_1"  class="multiplo" />
  15.                     </div>
  16.                 </div>
  17.                
  18.                 <div id= "operacion3">
  19.                     <div class= "amount">
  20.                     Cantidad:<br/>
  21.                     <input type="text" name="cantidad[]" id= "canti_1" class="multiplo" />
  22.                     </div>
  23.                 </div>      
  24.                
  25.                
  26.                 <div id= "operacion4">
  27.                     <div class= "tota">
  28.                     Sub-total:<br/>
  29.                     <input type="text" name="res[]" id= "totals_1" />
  30.                 </div>     
  31.                 <p/>
  32. <!-- cortar aqui -->               
  33.                  
  34.                    
  35. </form>
  36.  
  37. <script>
  38. function multiplicaciones()
  39. {
  40.     n= 1;
  41.     for (i=0;i<multiplos.length;i++)
  42.     {
  43.         if (!isNaN (multiplos[i].value))
  44.             n *= parseInt(multiplos[i].value);
  45.         else
  46.             n = 0;     
  47.     }
  48.    
  49.     if (isNaN(n))
  50.         n =0;
  51.        
  52.     output.value = n;
  53.        
  54. }
  55.  
  56.  
  57. multiplos = document.getElementsByClassName('multiplo');
  58. output = document.getElementById('totals_1');
  59.  
  60. for (i=0;i<multiplos.length;i++)
  61.     multiplos[i].addEventListener ('keyup',function(){ multiplicaciones();},false);
  62.  
  63.  
  64. </script>
__________________
Salu2!

Última edición por Italico76; 21/06/2014 a las 19:35
  #3 (permalink)  
Antiguo 22/06/2014, 13:00
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Multiplicación de inputs dinamicos

AngularJS

http://jsfiddle.net/79f4H/1/
  #4 (permalink)  
Antiguo 22/06/2014, 14:21
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Multiplicación de inputs dinamicos

Cita:
Iniciado por razpeitia Ver Mensaje
No resuelve bien cuando uno de los campos no contiene numeros y no generaliza cuales son los "multiplos" pero aporta para quienes no conocemos AngularJS --ya me dieron ganas de investigar--

Corto... quedo cortisimo ese codigo!
__________________
Salu2!

Última edición por Italico76; 22/06/2014 a las 14:42

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:16.