Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Operaciones con input

Estas en el tema de Operaciones con input en el foro de Javascript en Foros del Web. Que tal, tengo una duda acerca de realizar operaciones con input, primero les explico que estoy haciendo, realizo un formulario dinámico, el cual al presionar ...
  #1 (permalink)  
Antiguo 18/06/2013, 09:43
 
Fecha de Ingreso: abril-2009
Mensajes: 100
Antigüedad: 15 años
Puntos: 0
Operaciones con input

Que tal, tengo una duda acerca de realizar operaciones con input, primero les explico que estoy haciendo, realizo un formulario dinámico, el cual al presionar un boton me genera 4 input, con el evento onFocus hago una operacion de multiplicar 2 campos y mostrar el resultado en otro campo.
Hasta ahora todo funciona bien cuando genero los 4 primeros input, pero cuando genero mas input ya no me funciona la operacion de multiplicar esos 2 campos.

Les agrego el codigo con el cual genero los 4 input:
Código HTML:
<script type="text/javascript">
var contLin = 1, tr, td, tabla; 
function agregar() { 

document.getElementById("OcultoContLin").value = contLin; 
//var 
tabla = document.getElementById('TablaMed'); 
tr = tabla.insertRow(tabla.rows.length); 
td = tr.insertCell(tr.cells.length); 
// agregar [+ contLin +] para asignar un numero a cada identificador del input text
td.innerHTML = "<input type='text' size='21' name='articulo" +  "'id='articulo" +  "'>"; 
td = tr.insertCell(tr.cells.length); 
td.innerHTML = "<input type='text' size='15' name='cantidad" + "'id='cantidad" +  "'>"; 
td = tr.insertCell(tr.cells.length); 
td.innerHTML = "<input type='text' size='15' name='precioUnitario" +  "'onFocus='multiplicar();" + "'onBlur='Nomultiplicar();" +"'id='precioUnitario" + "'>"; 
td = tr.insertCell(tr.cells.length); 
td.innerHTML = "<input type='text' size='15' + name='total" + "'id='total" +  "'>";

contLin++; 
</script>
}
De esta manera con un onFocus llamo a esa funcion y me genera los 4 input, todos los input tienen el mismo nombre, como se muestra en el codigo, al generar mas input todos se llamarian a"articulo", "cantidad", etc, pero tambien se puede asignar un numero a cada identificador de input y quedaria asi: "articulo1", "articulo2", etc.

Ahora el cofdigo con el cual hago las operaciones es el siguiente:
Código HTML:
function multiplicar(){
      interval = setInterval("calcular()",1);
}
function calcular(){
      cantidad = document.form1.cantidad.value;
      precio = document.form1.precioUnitario.value; 
    result= document.form1.total.value = (cantidad * 1) * (precio * 1);
  //  result= document.form1.txtSubTotal.value = (cantidad * 1) * (precio * 1);
}

function Nomultiplicar(){
      clearInterval(interval);
}
Espero me puedan ayudar, el codigo colo funciona cuando genero los 4 input iniciales, cuando genero mas ya no realiza las operaciones.

Última edición por sagdec; 18/06/2013 a las 10:13
  #2 (permalink)  
Antiguo 18/06/2013, 12:04
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: Operaciones con input

si puedes formar input de diferentes ids solo basta con agregar parametros a tu funcion
Código Javascript:
Ver original
  1. function calcular(IdCantidad,IdPrecio,IdTotal){
  2.       cantidad = document.getElementById('IdCantidad').value;
  3.       precio = document.getElementById('IdPrecio').value;
  4.       document.getElementById('IdTotal').value= (cantidad * 1) * (precio * 1);
  5.   //  result= document.form1.txtSubTotal.value = (cantidad * 1) * (precio * 1);
  6. }

y cuando vayas creando tus inputs :

Código Javascript:
Ver original
  1. td.innerHTML = "<input type='text' size='15' name='precioUnitario" +  "'onFocus='multiplicar('iddelinputcantidad','idinputprecio','idinputtotal');" + "'onBlur='Nomultiplicar();" +"'id='precioUnitario" + "'>";
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #3 (permalink)  
Antiguo 18/06/2013, 12:45
 
Fecha de Ingreso: abril-2009
Mensajes: 100
Antigüedad: 15 años
Puntos: 0
Respuesta: Operaciones con input

Pues intente asi como dices pero no me funciona, lo mas seguro es que lo estoy implementando mal :S
  #4 (permalink)  
Antiguo 18/06/2013, 14:13
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: Operaciones con input

adecuando un poco tu codigo quedaria :
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. var contLin = 1, tr, td, tabla;
  3. function agregar() {
  4.  
  5. document.getElementById("OcultoContLin").value = contLin;
  6.  
  7. tabla = document.getElementById('TablaMed');
  8. tr = tabla.insertRow(tabla.rows.length);
  9. td = tr.insertCell(tr.cells.length);
  10. // agregar [+ contLin +] para asignar un numero a cada identificador del input text
  11. var N_Art="articulo"+contLin;
  12. var N_Can="cantidad"+contLin;
  13. var N_Tot="total"+contLin;
  14. var N_PUn="precioUnitario"+contLin;
  15. td.innerHTML = "<input type='text' size='21' name='"+N_Art+"' 'id='"+N_Art+"'>";
  16. td = tr.insertCell(tr.cells.length);
  17. td.innerHTML = "<input type='text' size='15' name='"+N_Can+"' id='"+N_Can+"'>";
  18. td = tr.insertCell(tr.cells.length);
  19. td.innerHTML = "<input type='text' size='15' name='"+N_PUn+"' id='"+N_PUn+"'>";
  20. td = tr.insertCell(tr.cells.length);
  21. td.innerHTML = "<input type='text' size='15' name='"+N_Tot+"' id='"+N_Tot+"' onFocus=\"calcular('"+N_Can+"','"+N_PUn+"','"+N_Tot+"');\">";
  22. contLin++;
  23. }
  24.  
  25. function calcular(IdCantidad,IdPrecio,IdTotal){
  26.       cantidad = document.getElementById(IdCantidad).value;
  27.       precio = document.getElementById(IdPrecio).value;
  28.       document.getElementById(IdTotal).value = (cantidad * 1) * (precio * 1);
  29. }
  30. </script>
  31. <div id="OcultoContLin">
  32. <table id="TablaMed">
  33. </table>
  34. </div>
  35. <input type="button" onClick="agregar()" value="agregar">
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #5 (permalink)  
Antiguo 19/06/2013, 13:17
 
Fecha de Ingreso: abril-2009
Mensajes: 100
Antigüedad: 15 años
Puntos: 0
Respuesta: Operaciones con input

Funciono al 100% muchas gracias por tu tiempo.

Etiquetas: campos, formulario, funcion, html, input, operaciones
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 00:57.