Ver Mensaje Individual
  #6 (permalink)  
Antiguo 11/06/2011, 14:03
Avatar de Naahuel
Naahuel
 
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 2 meses
Puntos: 192
Respuesta: Formulario JS que sume Checkbox y Listas

Cita:
Iniciado por Comercial Ver Mensaje
Hola otra vez Naahuel,

Ahora tengo otro problemilla, si marco / desmarco los checkbox la cantidad se suma o se resta correctamente, al elegir una opción de la lista también lo suma pero si la cambio por otra la vuelve a sumar sobre la anterior, en ningún caso resta.

Cómo podría evitar que si me muevo varias veces por la lista no haga solo suma sino actualice el valor según lo elegido.

Muchas gracias otra vez.
Eso es lo que te había dicho en el mensaje anterior (en el edit).

Podés hacer otra funcion para el select, almacenando los valores anteriores en una variable auxiliar. Algo así:
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2.   <head>
  3.     <script type="text/javascript">
  4.     function Suma(isChecked, valor){
  5.         if (isChecked) {
  6.             siniva2 = (parseFloat(document.sumar2.totalsiniva2.value) + parseFloat(valor)).toFixed(2);
  7.         } else {
  8.             siniva2 = (parseFloat(document.sumar2.totalsiniva2.value) - parseFloat(valor)).toFixed(2);
  9.         }
  10.         document.sumar2.totalsiniva2.value = siniva2;
  11.         document.sumar2.total2.value =  siniva2;
  12.     }
  13.     //almaceno el valor original en una variable para saber qué tenía antes.
  14.     var valor_viejo = 0;
  15.     function SumaSelect(valor){
  16.         siniva2 = (parseFloat(document.sumar2.totalsiniva2.value) + parseFloat(valor) - valor_viejo).toFixed(2);
  17.         document.sumar2.totalsiniva2.value = siniva2;
  18.         document.sumar2.total2.value =  siniva2;
  19.         valor_viejo = valor;
  20.     }  
  21.     </script>
  22.   </head>
  23.   <body>
  24.     <table border="1">
  25.       <tr>
  26.         <td>
  27.           <form name="sumar2" method="post" id="sumar2">
  28.             <label for="FOR">Pack</label> <select name="NAME" id="ID" onchange="SumaSelect(this.value)">
  29.               <option selected="selected" value="0">
  30.                 Selecciona un Pack
  31.               </option>
  32.               <option value="10.00">
  33.                 Pack Uno
  34.               </option>
  35.               <option value="20.00">
  36.                 Pack Dos
  37.               </option>
  38.             </select>
  39.             <p>
  40.               Super Pack U <input type="checkbox" value="1.00" id="Prod2" name="Prod2" onclick="Suma(this.checked,this.value)">1.00 ¬
  41.             </p>
  42.             <p>
  43.               Super Pack D <input type="checkbox" value="2.00" id="Prod3" name="Prod3" onclick="Suma(this.checked,this.value)">2.00 ¬
  44.             </p>
  45.             <p>
  46.               Super Pack T <input type="checkbox" value="3.00" id="Prod4" name="Prod4" onclick="Suma(this.checked,this.value)">3.00 ¬
  47.             </p>
  48.             <p>
  49.               Super Pack C <input type="checkbox" value="4.00" id="Prod5" name="Prod5" onclick="Suma(this.checked,this.value)">4.00 ¬
  50.             </p>
  51.             <p>
  52.               Super Pack C <input type="checkbox" value="5.00" id="Prod6" name="Prod6" onclick="Suma(this.checked,this.value)">5.00 ¬
  53.             </p><input type="hidden" value="0.00" id="totalsiniva2" name="totalsiniva2">
  54.             <p>
  55.               <b><font color="#999999">Total</font></b> <input type="text" id="total2" name="total2" value="0" disabled> ¬
  56.             </p>
  57.           </form>
  58.         </td>
  59.       </tr>
  60.     </table>
  61.   </body>
  62. </html>
__________________
nahueljose.com.ar