Comunidad de diseño web y desarrollo en internet online

sumar valores seleccionados de muchos combobox

Citar            
MensajeEscrito el 21 Mar 2012 09:45 am
Hola, tengo muchos combobox, más de cuarenta, y necesito que se vayan sumando los valores seleccionados en cada uno. Podría ir accediendo al valor de cada uno con "getElementById" y luego hacer la suma pero son muchos. Yo se que se podría hacer con un "bucle for" pero no se muy bien cómo escribirlo... ¿Me podríais ayudar? Muchas gracias!!

Por lamarula

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Mar 2012 05:38 pm
¿getElementById ? ¿Estás en ActionScript o JavaScript?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Mar 2012 10:52 am
En javascript.
No se, la verdad es que no tengo mucha idea pero por que he visto por ahí lo único que se me ocurre es hacer esto:

Código Javascript :

var uno = document.getElementById("uno");
var dos = document.getElementById("dos");
var tres = document.getElementById("tres");
..... (así con los 43 combox)

var preguno = +uno.options[uno.selectedIndex].value
var pregdos = +dos.options[dos.selectedIndex].value
var pregdos = +tres.options[tres.selectedIndex].value
......(así con los 43 combox)

var cajaresult=document.getElementById("cajaresult");
var resultado = (parseFloat(preguno)+parseFloat(pregdos)+parseFloat(pregtres).....(así con los 43 combox));
cajaresult.value=resultado;

Por lamarula

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Mar 2012 02:57 pm
Ok, lo paso entonces al foro de JavaScript, lo pusiste equivocadamente en el de ActionScript

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Mar 2012 10:36 pm
Con jquery podrías hacer eso mucho mas fácil, sería algo así:

Código Javascript :

var resultado;

$('select').each(function() {
 
   resultado += $(this).val();

}


lo explico rápidamente, con $('select') guardas todos los select del documento en un array, luego con .each() asignas una funcion a cada uno de los elementos de dicho array(un bucle) y luego en la funcion sumas cada valor a la variable resultado.

saludos.

Por HtrMancera

Claber

342 de clabLevel

1 tutorial

Genero:Masculino  

Front-end Developer

chrome
Citar            
MensajeEscrito el 23 Mar 2012 10:56 am
Lo he puesto así pero no funciona...

Código HTML :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>

<script type="text/javascript" src="jquery-1.7.2.min.js"> </script>

<script type="text/javascript">
function validacion_leveltest ()
{
var resultado;
var cajaresult=document.getElementById("cajaresult");

$('select').each(function() {
 
   resultado += $(this).val();
}
         
cajaresult.value=resultado;

}
</script>
</head>

<body>
<p>
  <select name="uno" id="uno" >
    <option value="0">seleccione</option>
    <option value="0">isn’t</option>
    <option value="0">are</option>
    <option value="0">is it</option>
    <option value="1">is</option>
  </select>
</p>
<p>
  <select name="dos" id="dos" >
    <option value="0">seleccione</option>
    <option value="0">with</option>
    <option value="1">from</option>
    <option value="0">not</option>
    <option value="0">a</option>
  </select>
</p>
<p>
  <select name="tres" id="tres" >
    <option value="0" selected="selected">seleccione</option>
    <option value="0">at the end</option>
    <option value="1">at last</option>
    <option value="0">by the end</option>
    <option value="0">on the end</option>
  </select>
</p>
<p>
  <input type="button" name="miboton4" value="sumar" onclick="validacion_leveltest();" />
  <input type="text" name="cajaresult" id="cajaresult" value="" />
</p>
</body>
</html>

Por lamarula

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Mar 2012 01:05 pm
El problema era que estaba tomando el valor de cada select como un string, por eso no funcionaba ^^

prueba con esto:

Código HTML :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

<script type="text/javascript">

</script>
</head>

<body>
<p>
  <select name="uno" id="uno" class="foo">
    <option value="3">seleccione</option>
    <option value="2">isn’t</option>
    <option value="4">are</option>
    <option value="2">is it</option>
    <option value="1" selected="selected">is</option>
  </select>
</p>
<p>
  <select name="dos" id="dos" >
    <option value="5">seleccione</option>
    <option value="2">with</option>
    <option value="1">from</option>
    <option value="3">not</option>
    <option value="6">a</option>
  </select>
</p>
<p>
  <select name="tres" id="tres" >
    <option value="2" selected="selected">seleccione</option>
    <option value="3">at the end</option>
    <option value="1">at last</option>
    <option value="5">by the end</option>
    <option value="4">on the end</option>
  </select>
</p>
<p>
  <input type="button" name="miboton4" value="sumar" id="sumar" />
  <input type="text" name="cajaresult" id="cajaresult" value="" />
</p>

<script type="text/javascript">

$('#sumar').on('click', function(){
    
     resultado = 0;

     $('select').each(function(){   
       
       resultado += ($(this).val())*1
      

      });
     $('#cajaresult').val(resultado);

    });

</script>
</body>
</html>

Por HtrMancera

Claber

342 de clabLevel

1 tutorial

Genero:Masculino  

Front-end Developer

chrome
Citar            
MensajeEscrito el 23 Mar 2012 04:57 pm
Mejor es usar parseInt();

Código Javascript :

resultado += parseInt($(this).val(), 10);

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 07 May 2012 09:04 am
Hola!! perdón por tardar tanto en contestar pero es que he estado liada con otras cosas! Muchas gracias por vuestras respuestas.
Me funciona a la perfección de forma aislada pero..... necesito integrar estos select en un form donde hay otros select que no quiero que se sumen. ¿Habría algun modo de especificar qué select quiero sumar?

Por lamarula

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 May 2012 12:05 pm
Pues ponle un class en común a todos los selects que quieres hacer participar de la suma y luego usa ese class en el selector de JQuery.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 07 May 2012 12:20 pm
ah, vale!! muchas gracias!. Ahora ya funciona!

Por lamarula

7 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.