Foros del Web » Programando para Internet » Javascript »

sumar el valor de los checkbox seleccionados

Estas en el tema de sumar el valor de los checkbox seleccionados en el foro de Javascript en Foros del Web. hola tengo varios checkbox de esta manera <input name="id" type="checkbox" id="clt" value="1500-abcd" /> <input name="id" type="checkbox" id="clt" value="100-abc" /> <input name="id" type="checkbox" id="clt" value="25-xcc" /> ...
  #1 (permalink)  
Antiguo 01/12/2009, 14:06
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
sumar el valor de los checkbox seleccionados

hola
tengo varios checkbox de esta manera

<input name="id" type="checkbox" id="clt" value="1500-abcd" />
<input name="id" type="checkbox" id="clt" value="100-abc" />
<input name="id" type="checkbox" id="clt" value="25-xcc" />
<input name="id" type="checkbox" id="clt" value="800-abcddd" />



donde la parte numerica es un valor y la parte despues del guion es un codigo
valor-codigo


quiero ke cada que se vaya chuleando algun checkbox se vaya sumando en otro campo de texto..
y al deschulearlo se reste.

alguien sabe como hacerlo?
primero obviamente habria ke hacer un split o algo para separar la cadena de caracteres y que solo me deje la parte numerica.

pero no tengo idea de como hacerlo
grcias por la ayuda ke puedan darme
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 01/12/2009, 15:10
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: sumar el valor de los checkbox seleccionados

Hola lexus!. Primero, trata de no usar "ke" o términos como "chuleando/deschulearlo". Ayuda a la lectura y a ayudarte.

En si, en cada evento onlick de tus checks tendrás que llamar a una función (para que quede lindo):

Código html:
Ver original
  1. <form name="miform" id="miform">
  2. ...
  3. <input name="id" type="checkbox" id="clt" value="..." onclick="sumar()" />
  4. ...
  5. </form>

Luego, la función sería:
Código javascript:
Ver original
  1. function sumar(){
  2.     obj = document.miform['id'];
  3.     totalChecks = obj.length;
  4.     totalSumado = 0;
  5.     for( i=0; i<totalChecks; i++){
  6.         if( obj[i].checked == true ){
  7.             valor = obj[i].value.split('-');       
  8.             totalSumado = totalSumado + parseInt(valor[0],10);
  9.         }
  10.     }
  11.     alert('estás sumando: '+ totalSumado);
  12. }



El ejemplo completo:
Código html:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Ejemplo</title>
  5. <script language="javascript" type="text/javascript">
  6. function sumar(){
  7.     obj = document.miform['id'];
  8.     totalChecks = obj.length;
  9.     totalSumado = 0;
  10.     for( i=0; i<totalChecks; i++){
  11.         if( obj[i].checked == true ){
  12.             valor = obj[i].value.split('-');       
  13.             totalSumado = totalSumado + parseInt(valor[0],10);
  14.         }
  15.     }
  16.     document.getElementById('informacion').innerHTML = 'estás sumando: '+ totalSumado;
  17. }
  18. </head>
  19.  
  20. <div id="informacion">estás sumando: 0</div>
  21. <form name="miform" id="miform">
  22.     1<input name="id" id="clt" type="checkbox" value="1500-abcd" onclick="sumar()" /><br>
  23.     2<input name="id" id="clt" type="checkbox" value="2500-abcd" onclick="sumar()" /><br>
  24.     3<input name="id" id="clt" type="checkbox" value="3500-abcd" onclick="sumar()" /><br>
  25.     4<input name="id" id="clt" type="checkbox" value="4500-abcd" onclick="sumar()" /><br>
  26. </form>
  27. </body>
  28. </html>


Espero que te sirva.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 02/12/2009, 07:43
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: sumar el valor de los checkbox seleccionados

perfecto muchisimas gracias..
es exactamente lo que necesitaba..
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #4 (permalink)  
Antiguo 02/12/2009, 09:10
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: sumar el valor de los checkbox seleccionados

hola

me ha fuincionado muy bien..
se me olvido agregar algo..
es que tengo un checkbox al principio
el cual selecciona todos o deselecciona

me gustaria ke tambien sumara o restara si selecciono/deselecciono
todos

el codigo es este.

Código javascript:
Ver original
  1. function marcarTodos(){
  2. if (document.miform.todos.checked){
  3. for (i=0;i<document.miform.length;i++){
  4. if ((document.miform.elements[i].id) == "clt"){
  5. document.miform.elements[i].checked = true;
  6. }
  7. }
  8. }
  9. else {
  10. for (i=0;i<document.miform.length;i++){
  11. if ((document.miform.elements[i].id) == "clt"){
  12. document.miform.elements[i].checked = false;
  13. }
  14. }
  15. }
  16.  
  17.  
  18. }
  19.  
  20. function sumar(){
  21.     obj = document.miform['id'];
  22.     totalChecks = obj.length;
  23.     totalSumado = 0;
  24.     for( i=0; i<totalChecks; i++){
  25.         if( obj[i].checked == true ){
  26.             valor = obj[i].value.split('-');        
  27.             totalSumado = totalSumado + parseInt(valor[0],10);
  28.         }
  29.     }
  30.     document.getElementById('informacion').innerHTML = '$'+ totalSumado;
  31. }
y el checkbox que hace esto es
<input type="checkbox" name="todos" value="1" onclick="marcarTodos();" />
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #5 (permalink)  
Antiguo 02/12/2009, 09:21
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: sumar el valor de los checkbox seleccionados

Llamas a la función sumar() luego de ejecutar marcarTodos();. Podes hacerlo de varias maneras, yo lo pondría al final de la misma función, así:
Código javascript:
Ver original
  1. function marcarTodos(){
  2. if (document.miform.todos.checked){
  3. for (i=0;i<document.miform.length;i++){
  4. if ((document.miform.elements[i].id) == "clt"){
  5. document.miform.elements[i].checked = true;
  6. }
  7. }
  8. }
  9. else {
  10. for (i=0;i<document.miform.length;i++){
  11. if ((document.miform.elements[i].id) == "clt"){
  12. document.miform.elements[i].checked = false;
  13. }
  14. }
  15. }
  16.  
  17. sumar();
  18. }
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #6 (permalink)  
Antiguo 02/12/2009, 09:23
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: sumar el valor de los checkbox seleccionados

excelente..
muchisisisimas gracias.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #7 (permalink)  
Antiguo 02/12/2009, 10:34
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: sumar el valor de los checkbox seleccionados

Cita:
Hola lexus!. Primero, trata de no usar "ke" o términos como "chuleando/deschulearlo". Ayuda a la lectura y a ayudarte.
pensar que no habia respondido a este tema porque no comprendi lo que quiso decir. espero que le sirva de experiencia a lexus para una proxima.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 10/12/2009, 08:13
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: sumar el valor de los checkbox seleccionados

Hola
me surgio un nuevo inconveniente

me funcionaba perfecto

hasta que hice la prueba con un solo checkbox.
es decir cuando en la pagina hay varios funcinoa y hace la suma y resta correctamente

pero cuando en la pagina hay un solo checkbox, si lo selecciono o desselecciono no pasa nada..

este es el codigo actual

Código javascript:
Ver original
  1. function marcarTodos(){
  2. if (document.miform.todos.checked){
  3. for (i=0;i<document.miform.length;i++){
  4. if ((document.miform.elements[i].id) == "clt"){
  5. document.miform.elements[i].checked = true;
  6. }
  7. }
  8. }
  9. else {
  10. for (i=0;i<document.miform.length;i++){
  11. if ((document.miform.elements[i].id) == "clt"){
  12. document.miform.elements[i].checked = false;
  13. }
  14. }
  15. }
  16.  
  17. sumar();
  18. }
  19.  
  20. function sumar(){
  21.     obj = document.miform['id'];
  22.     totalChecks = obj.length;
  23.     totalSumado = 0;
  24.     for( i=0; i<totalChecks; i++){
  25.         if( obj[i].checked == true ){
  26.             valor = obj[i].value.split('-');        
  27.             totalSumado = totalSumado + parseInt(valor[0],10);
  28.         }
  29.     }
  30.     document.getElementById('informacion').innerHTML = '$'+ totalSumado;
  31. }
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #9 (permalink)  
Antiguo 16/12/2009, 09:19
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: sumar el valor de los checkbox seleccionados

alguien tiene idea de como solucionar esto?q
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
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 09:32.