| |||
Sumar o multiplicar cajas de texto Amigos, tengo un probelmas con el javascrip, no se como empezar es lo peor, lo que pasa es que tengo un formulario donde uno ingrese imaginense 5 productos pueden ser 'n', la cual hay hay un textbox de la forma name=can_prod[] y otro donde esta el precio unitario name=prec_unit[] y otra donde esta el valor de venta name=val_vta[], la cosa es la siguiente yo ingreso la cantidad y el precio pero automanticamente me deberia calcular el valor de venta para cada uno de estos 5 en este caso, ademas al final de todo esto hay una caja de texto name=total_venta, como haria un javascrip para que me calcule todo esto....Ayuda..please!! |
| |||
No se si es exactamente esto lo que decias, pero por si acaso te lo pongo: <html> <head> <script language="JavaScript"> function calcularTotalParcial(index){ var cantidad = document.getElementsByName("cantidad")[index]; var precio = document.getElementsByName("precio")[index]; var total = document.getElementsByName("total")[index]; if((cantidad.value != "") && (precio.value != "")){ total.value = cantidad.value*precio.value; calcularTotal(); } else{ if(total.value != ""){ total.value = ""; calcularTotal(); } } } function calcularTotal(){ var totales = document.getElementsByName("total"); var suma = 0; for(var i=0; i<totales.length; i++){ if(totales[i].value != ""){ suma += totales[i].value*1; } } document.getElementById("total_venta").value = suma; } </script> </head> <body> <form> <table> <tr> <td>Cantidad: <input type="text" name="cantidad" value="" onChange="calcularTotalParcial(0)"/></td> <td>Precio: <input type="text" name="precio" value="" onChange="calcularTotalParcial(0)"/></td> <td>total: <input type="text" name="total" value="" disabled="true"/></td> </tr> <tr> <td>Cantidad: <input type="text" name="cantidad" value="" onChange="calcularTotalParcial(1)"/></td> <td>Precio: <input type="text" name="precio" value="" onChange="calcularTotalParcial(1)"/></td> <td>total: <input type="text" name="total" value="" disabled="true"/></td> </tr> <tr> <td colspan="3"> <input type="text" name="total_venta" value=""/> </td> </table> </form> </body> </html> |
| |||
Funciona bien.. Si funciona tu ejemplo perfectamente, pero ahora viene mi duda cuando pongo varias textbox con el mismo nombre, es igual poner name=nombre_text y asi en todas las demas con respecto a que si las pongo asi: name=nombre_text[], kisiera que me absuelvan esa duda.. please..y gracias a todos por leer mi pregunta y colaborar.. |
| |||
Si pones el mismo nombre (ej. name="nombre_text") luego para acceder a ellas (por ejemplo desde JavaScript), si haces un document.getElementsByName("nombre_text); esto te devuelve un array con todos los elementos de nombre_text que hayas declarado. Para acceder a cada uno de los elementos concretos (por ejemplo a su valor) lo que tienes que hacer es: var elementos = document.getElementsByName("nombre_text"); alert(elementos[i].value); // esto te devuelve el elemento que esta en la posicion i, que va de 0 a n, siendo n el numero de elementos que tienes con el mismo nombre menos1. Espero responder con esto a tu pregunta. Sonia |