Foros del Web » Programando para Internet » Javascript »

Modificar value="" al hacer click en un boton de borrar

Estas en el tema de Modificar value="" al hacer click en un boton de borrar en el foro de Javascript en Foros del Web. Hola, He hecho un pequeño formulario que suma las distintas opciones elegidas pero tengo un pequeño problema a la hora de insertar un botón de ...
  #1 (permalink)  
Antiguo 12/06/2011, 18:49
 
Fecha de Ingreso: abril-2009
Mensajes: 24
Antigüedad: 15 años
Puntos: 0
Modificar value="" al hacer click en un boton de borrar

Hola,

He hecho un pequeño formulario que suma las distintas opciones elegidas pero tengo un pequeño problema a la hora de insertar un botón de borrar.

Cuando marco los checkbox o selecciono una opción del select pues hace la suma correctamente. Si pulso en borrar todo desaparece pero cuando vuelvo marcar algún checkbox pues guarda la cantidad marcada antes de borrar.

Da igual cuantas veces borre ya que la cantidad siempre queda fijada, me gustaría saber como borrarlo.

He pensado que tal vez pueda hacer una función que al ser llamada con un onclick="mifuncion()" desde el botón de borrar pues borre el valor que queda guardado en el input de totalsiniva2 pero no se como podría hacerlo, he estado haciendo pruebas pero sigo en las mismas.

¿Alguna idea? Aquí dejo el pequeño form

Código HTML:
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <script type="text/javascript">
        function Suma(isChecked, valor){
            if (isChecked) {
                siniva2 = (parseFloat(document.sumar2.totalsiniva2.value) + parseFloat(valor)).toFixed(2);
            } else {
                siniva2 = (parseFloat(document.sumar2.totalsiniva2.value) - parseFloat(valor)).toFixed(2);
            }
            document.sumar2.totalsiniva2.value = siniva2;
            document.sumar2.total2.value =  siniva2;
        }
        //almaceno el valor original en una variable para saber qué tenía antes.
        var valor_viejo = 0;
        function SumaSelect(valor){
            siniva2 = (parseFloat(document.sumar2.totalsiniva2.value) + parseFloat(valor) - valor_viejo).toFixed(2);
            document.sumar2.totalsiniva2.value = siniva2;
            document.sumar2.total2.value =  siniva2;
            valor_viejo = valor;
        }  
        </script>
      </head>
      <body>
        <table border="1">
          <tr>
            <td>
              <form name="sumar2" method="post" id="sumar2">
                <label for="FOR">Pack</label> <select name="NAME" id="ID" onchange="SumaSelect(this.value)">
                  <option selected="selected" value="0">
                    Selecciona un Pack
                  </option>
                  <option value="10.00">
                    Pack Uno 10&euro;
                  </option>
                  <option value="20.00">
                    Pack Dos 20&euro;
                  </option>
                </select>
                <p>
                  Super Pack U <input type="checkbox" value="1.00" id="Prod2" name="Prod2" onclick="Suma(this.checked,this.value)">1.00 &euro;
                </p>
                <p>
                  Super Pack D <input type="checkbox" value="2.00" id="Prod3" name="Prod3" onclick="Suma(this.checked,this.value)">2.00 &euro;
                </p>
                <p>
                  Super Pack T <input type="checkbox" value="3.00" id="Prod4" name="Prod4" onclick="Suma(this.checked,this.value)">3.00 &euro;
                </p>
                <p>
                  Super Pack C <input type="checkbox" value="4.00" id="Prod5" name="Prod5" onclick="Suma(this.checked,this.value)">4.00 &euro;
                </p>
                <p>
                  Super Pack C <input type="checkbox" value="5.00" id="Prod6" name="Prod6" onclick="Suma(this.checked,this.value)">5.00 &euro;
                </p><input type="hidden" value="" id="totalsiniva2" name="totalsiniva2">
                <p>
                  <b><font color="#999999">Total</font></b> 
                  <input name="total2" type="text" disabled id="total2" value=""> 
                  &euro;
                </p>
                <button role="button" type="reset">BORRAR</button>	
              </form>
            </td>
          </tr>
        </table>
      </body>
    </html> 
Gracias!
  #2 (permalink)  
Antiguo 12/06/2011, 21:53
 
Fecha de Ingreso: mayo-2011
Ubicación: sinaloa
Mensajes: 150
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: Modificar value="" al hacer click en un boton de borrar

Al igual que obtienes el valor de sus casillas puedes agregarles el valor existen muchas formas esta es la que usas tu:
document.formulario.nombre_entrada.value = ponerlo en cero
en tu codigo es:
document.sumar2.totalsiniva2.value=0;

espero que esta sea la solución que buscas, también modifique cuando no exista en la casilla no me mande un valor nulo. Suerte.

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

Última edición por yoniti7784; 12/06/2011 a las 22:17
  #3 (permalink)  
Antiguo 12/06/2011, 22:19
 
Fecha de Ingreso: abril-2009
Mensajes: 24
Antigüedad: 15 años
Puntos: 0
Respuesta: Modificar value="" al hacer click en un boton de borrar

He hecho el cambio que indicaste y nada, sigue igual. El problema del NaN era que no había definido ningún valor al value="" del input totalsiniva2

Aquí otra vez el código:

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>
        <script type="text/javascript">
        function Suma(isChecked, valor){
            if (isChecked) {
                siniva2 = (parseFloat(document.sumar2.totalsiniva2.value) + parseFloat(valor)).toFixed(2);
            } else {
                siniva2 = (parseFloat(document.sumar2.totalsiniva2.value) - parseFloat(valor)).toFixed(2);
            }
            document.sumar2.totalsiniva2.value = siniva2;
            document.sumar2.total2.value =  siniva2;
        }
        //almaceno el valor original en una variable para saber qué tenÃ*a antes.
        var valor_viejo = 0;
        function SumaSelect(valor){
            siniva2 = (parseFloat(document.sumar2.totalsiniva2.value) + parseFloat(valor) - valor_viejo).toFixed(2);
            document.sumar2.totalsiniva2.value = siniva2;
            document.sumar2.total2.value =  siniva2;
            valor_viejo = valor;
        }  
        </script>
      </head><body>
        <table border="1">
          <tbody><tr>
            <td>
              <form name="sumar2" method="post" id="sumar2">
                <label for="FOR">Pack</label> <select name="NAME" id="ID" onchange="SumaSelect(this.value)">
                  <option selected="selected" value="0">
                    Selecciona un Pack
                  </option>
                  <option value="10.00">
                    Pack Uno 10€
                  </option>
                  <option value="20.00">
                    Pack Dos 20€
                  </option>
                </select>
                <p>
                  Super Pack U <input type="checkbox" value="1.00" id="Prod2" name="Prod2" onclick="Suma(this.checked,this.value)">1.00 €
                </p>
                <p>
                  Super Pack D <input type="checkbox" value="2.00" id="Prod3" name="Prod3" onclick="Suma(this.checked,this.value)">2.00 €
                </p>
                <p>
                  Super Pack T <input type="checkbox" value="3.00" id="Prod4" name="Prod4" onclick="Suma(this.checked,this.value)">3.00 €
                </p>
                <p>
                  Super Pack C <input type="checkbox" value="4.00" id="Prod5" name="Prod5" onclick="Suma(this.checked,this.value)">4.00 €
                </p>
                <p>
                  Super Pack C <input type="checkbox" value="5.00" id="Prod6" name="Prod6" onclick="Suma(this.checked,this.value)">5.00 €
                </p><input type="hidden" value="47.00" id="totalsiniva2" name="totalsiniva2">
                <p>
                  <b><font color="#999999">Total</font></b> 
                  <input name="total2" type="text" disabled="" id="total2" value=""></p>
                <input type="reset" value="limpiar contenido">
              </form>
            </td>
          </tr>
        </tbody></table>
    </body></html> 
  #4 (permalink)  
Antiguo 12/06/2011, 22:26
 
Fecha de Ingreso: mayo-2011
Ubicación: sinaloa
Mensajes: 150
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: Modificar value="" al hacer click en un boton de borrar

Cita:
Iniciado por Comercial Ver Mensaje
He hecho el cambio que indicaste y nada, sigue igual. El problema del NaN era que no había definido ningún valor al value="" del input totalsiniva2

Aquí otra vez el código:

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>
        <script type="text/javascript">
        function Suma(isChecked, valor){
            if (isChecked) {
                siniva2 = (parseFloat(document.sumar2.totalsiniva2.value) + parseFloat(valor)).toFixed(2);
            } else {
                siniva2 = (parseFloat(document.sumar2.totalsiniva2.value) - parseFloat(valor)).toFixed(2);
            }
            document.sumar2.totalsiniva2.value = siniva2;
            document.sumar2.total2.value =  siniva2;
        }
        //almaceno el valor original en una variable para saber qué tenÃ*a antes.
        var valor_viejo = 0;
        function SumaSelect(valor){
            siniva2 = (parseFloat(document.sumar2.totalsiniva2.value) + parseFloat(valor) - valor_viejo).toFixed(2);
            document.sumar2.totalsiniva2.value = siniva2;
            document.sumar2.total2.value =  siniva2;
            valor_viejo = valor;
        }  
        </script>
      </head><body>
        <table border="1">
          <tbody><tr>
            <td>
              <form name="sumar2" method="post" id="sumar2">
                <label for="FOR">Pack</label> <select name="NAME" id="ID" onchange="SumaSelect(this.value)">
                  <option selected="selected" value="0">
                    Selecciona un Pack
                  </option>
                  <option value="10.00">
                    Pack Uno 10€
                  </option>
                  <option value="20.00">
                    Pack Dos 20€
                  </option>
                </select>
                <p>
                  Super Pack U <input type="checkbox" value="1.00" id="Prod2" name="Prod2" onclick="Suma(this.checked,this.value)">1.00 €
                </p>
                <p>
                  Super Pack D <input type="checkbox" value="2.00" id="Prod3" name="Prod3" onclick="Suma(this.checked,this.value)">2.00 €
                </p>
                <p>
                  Super Pack T <input type="checkbox" value="3.00" id="Prod4" name="Prod4" onclick="Suma(this.checked,this.value)">3.00 €
                </p>
                <p>
                  Super Pack C <input type="checkbox" value="4.00" id="Prod5" name="Prod5" onclick="Suma(this.checked,this.value)">4.00 €
                </p>
                <p>
                  Super Pack C <input type="checkbox" value="5.00" id="Prod6" name="Prod6" onclick="Suma(this.checked,this.value)">5.00 €
                </p><input type="hidden" value="47.00" id="totalsiniva2" name="totalsiniva2">
                <p>
                  <b><font color="#999999">Total</font></b> 
                  <input name="total2" type="text" disabled="" id="total2" value=""></p>
                <input type="reset" value="limpiar contenido">
              </form>
            </td>
          </tr>
        </tbody></table>
    </body></html> 

jejee
modifique la respuesta... revisala en la primer respuesta y dime si tefunciona...
  #5 (permalink)  
Antiguo 13/06/2011, 06:02
 
Fecha de Ingreso: abril-2009
Mensajes: 24
Antigüedad: 15 años
Puntos: 0
Respuesta: Modificar value="" al hacer click en un boton de borrar

Muchas gracias, funciona perfectamente yoniti7784. Yo sabía que necesitaba crear una función para poner el valor a cero pero no estaba muy encaminado aunque tampoco estaba muy perdido.

Con los cambios que realizaste empiezo a entender algo mejor y sobre todo, entiendo que hacia mal.

Gracias!
  #6 (permalink)  
Antiguo 13/06/2011, 06:19
 
Fecha de Ingreso: abril-2009
Mensajes: 24
Antigüedad: 15 años
Puntos: 0
Respuesta: Modificar value="" al hacer click en un boton de borrar

Perdon por haber contestado sin haberlo testeado al 100%. Te comento los pasos que he seguido

1 - Elijo opción Select
2 - Marco algunos checkbox
(Hasta aquí todo bien)

3 - Borro formulario
4 - Vuelvo a elegir opción del Select
(aquí ya empieza a fallar)
5 - Marco algunos checkbox
(esto funciona siempre a la perfección)
6 - Borro formulario otra vez
7 - Vuelvo a elegir opción del Select
(sigue fallando, al borrar el form y al elegir otra vez alguna opción del select pues se queda colgado, aveces resta la cantidad etc...)

He tratado de dejar el código tal cual estaba y tan solo añadiendo la funcion limpia(); pero nada, no hay manera.

A ver si me echais una manita, gracias!
  #7 (permalink)  
Antiguo 14/06/2011, 08:27
 
Fecha de Ingreso: mayo-2011
Ubicación: sinaloa
Mensajes: 150
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: Modificar value="" al hacer click en un boton de borrar

mira..
cuando haces 0 el totalsiniva2 quiere decir que existe al menos un caracter
entonces cuando entra a la funcion selected por segunda vez esta existiendo un valor nulo
agregale en la condicion que tambien entre cuando sea = 0.

dentro de la funcion SumaSelect(valor){
sinvalor2=valor

if(document.sumar2.totalsiniva2.value=="" && document.sumar2.totalsiniva2.value==0 )
sinvalor2=valor;
else
sinvalor2=document.sumar2.totalsiniva2.value;


y listo.
creo que tambien es recomendable que se lo pongas en la funcion Suma compararlo con 0.
en otro caso la otra forma creo yo que seria en vez de hacer 0 la caja de texto cuando limpias ponlo "" entre comillas sin espacios xD

si tienes alguna duda no dudes en anotarla suerte,

Etiquetas: formulario
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 18:42.