Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/06/2013, 09:43
sagdec
 
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