jedi_windu Posted June 18, 2010 Report Share Posted June 18, 2010 Hola a todos! De nuevo: Tengo un problema: En el tema anterior mío (http://www.chilecomparte.cl/index.php?showtopic=1127356) Hice la suma de las variables para que me saliera un total en un campo deshabilitado. Ahora, lo que quiero hacer es sumar esos campos deshabilitados para que me dé un total. ¿Cómo lo puedo hacer? Aún no soy muy entendido en javascript, pero igual sé algo. Aquí les mando el código del tema anterior <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Prueba</title> <script> function calcularTotalParcial(index){ var cantidad = document.getElementsByName("cantidad")[index]; var precio = document.getElementsByName("precio")[index]; var agregado1 = document.getElementsByName("agregado1")[index]; var agregado2 = document.getElementsByName("agregado2")[index]; var agregado3 = document.getElementsByName("agregado3")[index]; var total = document.getElementsByName("total")[index]; if((cantidad.value != "") && (precio.value != "") && (precio.value != "")) { total.value = (parseInt(cantidad.value)*parseInt(precio.value)+parseInt(agregado1.value)+parseInt(agregado2.value)+parseInt(agregado3.value)); calcularTotal(); } else{ if(total.value != ""){ total.value = ""; calcularTotal(); } } } </script> </head> <body> <form name="form1" method="post" action=""> <table width="700" border="0"> <tr> <td colspan="2" class="bold">Sandwiches</td> <td width="68" class="bold"><div align="center">Cantidad</div></td> <td width="118" class="bold"><div align="center">Agregado 1</div></td> <td width="116" class="bold"><div align="center">Agregado 2</div></td> <td width="114" class="bold"><div align="center">Agregado 3</div></td> <td width="59" class="bold"><div align="center">Total</div></td> </tr> <tr> <td width="87" valign="top" class="footer"><span class="bold">Mayo</span></td> <td width="108" valign="top"><div align="center"> <select name="precio" class="dayOfWeek" id="precio" onchange="calcularTotalParcial(0)"> <option value="0">Ninguno</option> <option value="1400">As</option> <option value="2200">Normal</option> <option value="3200">Grande</option> </select> </div></td> <td valign="top"><div align="center"> <input name="cantidad" type="text" class="dayOfWeek" onchange="calcularTotalParcial(0)" value="" size="5"/> </div></td> <td valign="top"><div align="center"> <select name="agregado1" class="dayOfWeek" id="agregado1" onchange="calcularTotalParcial(0)"> <option value="0">Ninguno</option> <option value="100">Ají Verde</option> <option value="100">Mayonesa</option> <option value="300">Huevo</option> <option value="400">Cebolla</option> <option value="500">Americana</option> <option value="500">Chucrut</option> <option value="500">Lechuga</option> <option value="500">Palta</option> <option value="500">Poroto Verde</option> <option value="500">Tocino</option> <option value="600">Queso</option> </select> </div></td> <td valign="top"><div align="center"> <select name="agregado2" class="dayOfWeek" id="agregado4" onchange="calcularTotalParcial(0)"> <option value="0">Ninguno</option> <option value="100">Ají Verde</option> <option value="100">Mayonesa</option> <option value="300">Huevo</option> <option value="400">Cebolla</option> <option value="500">Americana</option> <option value="500">Chucrut</option> <option value="500">Lechuga</option> <option value="500">Palta</option> <option value="500">Poroto Verde</option> <option value="500">Tocino</option> <option value="600">Queso</option> </select> </div></td> <td valign="top"><div align="center"> <select name="agregado3" class="dayOfWeek" id="agregado3" onchange="calcularTotalParcial(0)"> <option value="0">Ninguno</option> <option value="100">Ají Verde</option> <option value="100">Mayonesa</option> <option value="300">Huevo</option> <option value="400">Cebolla</option> <option value="500">Americana</option> <option value="500">Chucrut</option> <option value="500">Lechuga</option> <option value="500">Palta</option> <option value="500">Poroto Verde</option> <option value="500">Tocino</option> <option value="600">Queso</option> </select> </div></td> <td width="59" valign="top"><input name="total" type="text" disabled="disabled" class="dayOfWeek" id="total1" value="" size="10"/> </td> </tr> <tr> <td width="87" valign="top" class="footer"><span class="bold">Tomate</span></td> <td width="108" valign="top"><div align="center"> <select name="precio" class="dayOfWeek" id="precio" onchange="calcularTotalParcial(1)"> <option value="0">Ninguno</option> <option value="1400">As</option> <option value="2200">Normal</option> <option value="3200">Grande</option> </select> </div></td> <td valign="top"><div align="center"> <input name="cantidad" type="text" class="dayOfWeek" onchange="calcularTotalParcial(1)" value="" size="5"/> </div></td> <td valign="top"><div align="center"> <select name="agregado1" class="dayOfWeek" id="agregado1" onchange="calcularTotalParcial(1)"> <option value="0">Ninguno</option> <option value="100">Ají Verde</option> <option value="100">Mayonesa</option> <option value="300">Huevo</option> <option value="400">Cebolla</option> <option value="500">Americana</option> <option value="500">Chucrut</option> <option value="500">Lechuga</option> <option value="500">Palta</option> <option value="500">Poroto Verde</option> <option value="500">Tocino</option> <option value="600">Queso</option> </select> </div></td> <td valign="top"><div align="center"> <select name="agregado2" class="dayOfWeek" id="agregado2" onchange="calcularTotalParcial(1)"> <option value="0">Ninguno</option> <option value="100">Ají Verde</option> <option value="100">Mayonesa</option> <option value="300">Huevo</option> <option value="400">Cebolla</option> <option value="500">Americana</option> <option value="500">Chucrut</option> <option value="500">Lechuga</option> <option value="500">Palta</option> <option value="500">Poroto Verde</option> <option value="500">Tocino</option> <option value="600">Queso</option> </select> </div></td> <td valign="top"><div align="center"> <select name="agregado3" class="dayOfWeek" id="agregado3" onchange="calcularTotalParcial(1)"> <option value="0">Ninguno</option> <option value="100">Ají Verde</option> <option value="100">Mayonesa</option> <option value="300">Huevo</option> <option value="400">Cebolla</option> <option value="500">Americana</option> <option value="500">Chucrut</option> <option value="500">Lechuga</option> <option value="500">Palta</option> <option value="500">Poroto Verde</option> <option value="500">Tocino</option> <option value="600">Queso</option> </select> </div></td> <td width="59" valign="top"><input name="total" type="text" disabled="disabled" class="dayOfWeek" id="total2" value="" size="10"/> </td> </tr> </table> </body> </html> OJO que el script no es mío lo saqué de internet y le puse algunas cosas mías, con ayuda de okinagua. ¡Gracias por la ayuda a todos! ¡Saludos! :sw: Link to comment Share on other sites More sharing options...
Ra Posted June 18, 2010 Report Share Posted June 18, 2010 var suma; suma = parseInt(document.getElementById('total1').value) + parseInt(document.getElementById('total2').value); y si lo quieres mostrar en otro input document.getElementById('totaltotal').value = suma; Link to comment Share on other sites More sharing options...
jedi_windu Posted June 18, 2010 Author Report Share Posted June 18, 2010 (edited) No me funciona! Alguien me puede ayudar? :( Gracias! :sw: Edited June 21, 2010 by jedi_windu Link to comment Share on other sites More sharing options...
crash512 Posted July 1, 2010 Report Share Posted July 1, 2010 $(document).ready(function(){ $(".suma").change(function(){ var total=0; $(".suma").each(function(){ if(parseInt($(this).val())>0){ total+=parseInt($(this).val()); } }); $("#total").val(total); }); }); con jquery te podria resultar este script no lo e probado lo hice recien agregale la clase suma a los select para q los recorra, supuestamente el wn al cambiar el option de algun select con la clase suma el script recorre todos los select y le va sumando el valor del option seleccionado y al final donde dice $("#total").val(total); aqi es cuando deberia agregar la suma total al input donde quieres q de el valor, debes poner el id del input en donde dice "#total" y eso recuerda bajarte la libreria jquery pa q corra el script si te tira ataos es posible q no pesq por la guea del nan en una de esas o la parte del each no ta bien declarada pero ai vei en google o la documentacion oficial pa cachar si ta bien weno eso ojala te sirva aio aio dostors Link to comment Share on other sites More sharing options...
Ra Posted July 1, 2010 Report Share Posted July 1, 2010 Probado y funcionando: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Prueba</title> <script> function calcularTotal(){ document.getElementById('totaltotal').value = parseInt(document.getElementById('total1').value) + parseInt(document.getElementById('total2').value); } function calcularTotalParcial(index){ var cantidad = document.getElementsByName("cantidad")[index]; var precio = document.getElementsByName("precio")[index]; var agregado1 = document.getElementsByName("agregado1")[index]; var agregado2 = document.getElementsByName("agregado2")[index]; var agregado3 = document.getElementsByName("agregado3")[index]; var total = document.getElementsByName("total")[index]; if((cantidad.value != "") && (precio.value != "") && (precio.value != "")) { total.value = (parseInt(cantidad.value)*parseInt(precio.value)+parseInt(agregado1.value)+parseInt(agregado2.value)+parseInt(agregado3.value)); calcularTotal(); } else{ if(total.value != ""){ total.value = ""; calcularTotal(); } } } </script> </head> <body> <form name="form1" method="post" action=""> <table width="700" border="0"> <tr> <td colspan="2" class="bold">Sandwiches</td> <td width="68" class="bold"><div align="center">Cantidad</div></td> <td width="118" class="bold"><div align="center">Agregado 1</div></td> <td width="116" class="bold"><div align="center">Agregado 2</div></td> <td width="114" class="bold"><div align="center">Agregado 3</div></td> <td width="59" class="bold"><div align="center">Total</div></td> </tr> <tr> <td width="87" valign="top" class="footer"><span class="bold">Mayo</span></td> <td width="108" valign="top"><div align="center"> <select name="precio" class="dayOfWeek" id="precio" onchange="calcularTotalParcial(0)"> <option value="0">Ninguno</option> <option value="1400">As</option> <option value="2200">Normal</option> <option value="3200">Grande</option> </select> </div></td> <td valign="top"><div align="center"> <input name="cantidad" type="text" class="dayOfWeek" onchange="calcularTotalParcial(0)" value="0" size="5"/> </div></td> <td valign="top"><div align="center"> <select name="agregado1" class="dayOfWeek" id="agregado1" onchange="calcularTotalParcial(0)"> <option value="0">Ninguno</option> <option value="100">Ají Verde</option> <option value="100">Mayonesa</option> <option value="300">Huevo</option> <option value="400">Cebolla</option> <option value="500">Americana</option> <option value="500">Chucrut</option> <option value="500">Lechuga</option> <option value="500">Palta</option> <option value="500">Poroto Verde</option> <option value="500">Tocino</option> <option value="600">Queso</option> </select> </div></td> <td valign="top"><div align="center"> <select name="agregado2" class="dayOfWeek" id="agregado4" onchange="calcularTotalParcial(0)"> <option value="0">Ninguno</option> <option value="100">Ají Verde</option> <option value="100">Mayonesa</option> <option value="300">Huevo</option> <option value="400">Cebolla</option> <option value="500">Americana</option> <option value="500">Chucrut</option> <option value="500">Lechuga</option> <option value="500">Palta</option> <option value="500">Poroto Verde</option> <option value="500">Tocino</option> <option value="600">Queso</option> </select> </div></td> <td valign="top"><div align="center"> <select name="agregado3" class="dayOfWeek" id="agregado3" onchange="calcularTotalParcial(0)"> <option value="0">Ninguno</option> <option value="100">Ají Verde</option> <option value="100">Mayonesa</option> <option value="300">Huevo</option> <option value="400">Cebolla</option> <option value="500">Americana</option> <option value="500">Chucrut</option> <option value="500">Lechuga</option> <option value="500">Palta</option> <option value="500">Poroto Verde</option> <option value="500">Tocino</option> <option value="600">Queso</option> </select> </div></td> <td width="59" valign="top"><input name="total" type="text" disabled="disabled" class="dayOfWeek" id="total1" value="0" size="10"/> </td> </tr> <tr> <td width="87" valign="top" class="footer"><span class="bold">Tomate</span></td> <td width="108" valign="top"><div align="center"> <select name="precio" class="dayOfWeek" id="precio" onchange="calcularTotalParcial(1)"> <option value="0">Ninguno</option> <option value="1400">As</option> <option value="2200">Normal</option> <option value="3200">Grande</option> </select> </div></td> <td valign="top"><div align="center"> <input name="cantidad" type="text" class="dayOfWeek" onchange="calcularTotalParcial(1)" value="0" size="5"/> </div></td> <td valign="top"><div align="center"> <select name="agregado1" class="dayOfWeek" id="agregado1" onchange="calcularTotalParcial(1)"> <option value="0">Ninguno</option> <option value="100">Ají Verde</option> <option value="100">Mayonesa</option> <option value="300">Huevo</option> <option value="400">Cebolla</option> <option value="500">Americana</option> <option value="500">Chucrut</option> <option value="500">Lechuga</option> <option value="500">Palta</option> <option value="500">Poroto Verde</option> <option value="500">Tocino</option> <option value="600">Queso</option> </select> </div></td> <td valign="top"><div align="center"> <select name="agregado2" class="dayOfWeek" id="agregado2" onchange="calcularTotalParcial(1)"> <option value="0">Ninguno</option> <option value="100">Ají Verde</option> <option value="100">Mayonesa</option> <option value="300">Huevo</option> <option value="400">Cebolla</option> <option value="500">Americana</option> <option value="500">Chucrut</option> <option value="500">Lechuga</option> <option value="500">Palta</option> <option value="500">Poroto Verde</option> <option value="500">Tocino</option> <option value="600">Queso</option> </select> </div></td> <td valign="top"><div align="center"> <select name="agregado3" class="dayOfWeek" id="agregado3" onchange="calcularTotalParcial(1)"> <option value="0">Ninguno</option> <option value="100">Ají Verde</option> <option value="100">Mayonesa</option> <option value="300">Huevo</option> <option value="400">Cebolla</option> <option value="500">Americana</option> <option value="500">Chucrut</option> <option value="500">Lechuga</option> <option value="500">Palta</option> <option value="500">Poroto Verde</option> <option value="500">Tocino</option> <option value="600">Queso</option> </select> </div></td> <td width="59" valign="top"><input name="total" type="text" disabled="disabled" class="dayOfWeek" id="total2" value="0" size="10"/> </td> </tr> <tr> <td><input type="text" name="totaltotal" id="totaltotal" value="" size="10" disabled /></td> </tr> </table> </form> </body> </html> Lo que agregué: 1º Faltó el </form> 2º Agregué la función calcularTotal function calcularTotal(){ document.getElementById('totaltotal').value = parseInt(document.getElementById('total1').value) + parseInt(document.getElementById('total2').value); } 3º Inicialicé los valores para que no aparezca NaN... puedes hacer un validador mejor... ... <input name="cantidad" type="text" class="dayOfWeek" onchange="calcularTotalParcial(0)" value="0" size="5"/> ... <input name="total" type="text" disabled="disabled" class="dayOfWeek" id="total1" value="0" size="10"/> ... <input name="cantidad" type="text" class="dayOfWeek" onchange="calcularTotalParcial(1)" value="0" size="5"/> ... <input name="total" type="text" disabled="disabled" class="dayOfWeek" id="total2" value="0" size="10"/> ... 4º Agregué además un input adicional, para mostrar el total global... <tr> <td><input type="text" name="totaltotal" id="totaltotal" value="" size="10" disabled /></td> </tr> Tú, ordénalo como quieras... me refiero al <tr><td> que agregué... SAlu2. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now