Foros del Web » Programando para Internet » Javascript »

sumadora

Estas en el tema de sumadora en el foro de Javascript en Foros del Web. buenas quería solicitar ayuda con un script lo que necesito es una especie de sumadora. tengo este html Código: <select id="pfrs" name="pfrs" size="1" onchange="calcula1(this.options.selectedIndex)"> <option ...
  #1 (permalink)  
Antiguo 11/11/2011, 13:36
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
sumadora

buenas quería solicitar ayuda con un script lo que necesito es una especie de sumadora.

tengo este html

Código:
<select id="pfrs" name="pfrs" size="1" onchange="calcula1(this.options.selectedIndex)">
<option value="5">-50</option>
<option value="6">-40</option>
<option value="7">-30</option>
<option value="8">-20</option>
<option value="9">-10</option>
<option value="10" selected="selected">0</option>
<option value="11">10</option>
<option value="12">20</option>
<option value="13">30</option>
<option value="14">45</option>
<option value="15">60</option>
<option value="16">80</option>
<option value="17">100</option>
<option value="18">125</option>
<option value="19">150</option>
<option value="20">200</option>
</select>
como verán en este select option tiene un value de 1 a 20 este no puedo cambiarlo por que es utilizado en un script, el valor siguiente que va de - 50 a 200 deveria ser utilisado con una calculadora, digamos que tengo 4 select de esta misma clase y tengo un imput donde quiero que se muestre el total de puntos utilisados.

Cita:
<input name="atr" id="atr" value="0" disabled="disabled" />
el script:

Cita:
<script type="text/javascript">
function calcula1(){
var operf1 = document.getElementById("pfrs");
var operando1 = operf1.selectedIndex;
var ope1 = operf1.options[operando1];
var pfrs = ope1.value;
var num = parseInt(document.form1.atr.value);
var num2 = parseInt(ope1);
var result = eval(num+pfrs);
document.form1.atr.value = result;
document.form1.frs.value = pfrs;}
el problema es que no hace exactamente lo que necesito. alguien tiene alguna idea o aporte agradezco todas las sugerencias.
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #2 (permalink)  
Antiguo 11/11/2011, 16:32
Avatar de gilber966  
Fecha de Ingreso: abril-2010
Mensajes: 117
Antigüedad: 14 años
Puntos: 4
Respuesta: sumadora

a mi no me funciona tomar valores de los disabled, lo que hago es crear text ocultos con el mismo valor del disabled

Prueba asignando el valor de las variables asi:

mivariable=document.getElementById('el_id').value;
tambien prueba colocando el mismo id a los option

Última edición por gilber966; 11/11/2011 a las 16:42
  #3 (permalink)  
Antiguo 11/11/2011, 20:58
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: sumadora

nah no quiero el value necesito es obtener el numero que va de -50 a 200 es un texto que va en el primer select y se le muestra al usuario... cosa de que si el usuario tiene 1000 puntos no pueda pasarse de ellos.
ademas el atributo disabled lo cambie por readonly="readonly"

estube pensando utilizar esto pero no se si sea lo adecuado para llamar a una funcion y hacer los calculos con otro scrip:

Cita:
onchange="calcula1(this.options.selectedIndex); statpoint(this.options.selectedIndex.text)"
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB

Última edición por arcanisgk122; 11/11/2011 a las 21:35
  #4 (permalink)  
Antiguo 11/11/2011, 21:36
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: sumadora

el problema esta en que el valor es numerico y lo estoy resiviendo como text... puedo trabajar de forma algebraica con esto?

hasta ahora tengo esto pero no me funciona y creo que puede ser simplificado:


Cita:
var point=0;
function statpoint(){
var pointset = document.getElementById("pfrs");
var pointop1 = pointset.options[pointset.selectedIndex].text;
var atrset = document.getElementById("atr");
var atrpoint = atrset.options[atrset.selectedIndex].text;
switch ("pointop1"){
case "-50":
point=atrpoint+pointop1;
atrpoint = point;
break;
case "-40":
point=atrpoint+pointop1;
atrpoint = point;
break;
case "-30":
point=atrpoint+pointop1;
atrpoint = point;
break;
case "-20":
point=atrpoint+pointop1;
atrpoint = point;
break;
point=atrpoint+pointop1;
atrpoint = point;
case "-10":
point=atrpoint+pointop1;
atrpoint = point;
break;
case "0":
point=atrpoint+pointop1;
atrpoint = point;
break;
case "10":
point=atrpoint+pointop1;
atrpoint = point;
break;
case "20":
point=atrpoint+pointop1;
atrpoint = point;
break;
case "30":
point=atrpoint+pointop1;
atrpoint = point;
break;
case "45":
point=atrpoint+pointop1;
atrpoint = point;
break;
case "60":
point=atrpoint+pointop1;
atrpoint = point;
break;
case "80":
point=atrpoint+pointop1;
atrpoint = point;
break;
case "100":
point=atrpoint+pointop1;
atrpoint = point;
break;
case "125":
point=atrpoint+pointop1;
atrpoint = point;
break;
case "150":
point=atrpoint+pointop1;
atrpoint = point;
break;
case "200":
point=atrpoint+pointop1;
atrpoint = point;
break;
}
document.form1.atr.text = atrpoint;
}
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB

Última edición por arcanisgk122; 11/11/2011 a las 22:34
  #5 (permalink)  
Antiguo 12/11/2011, 01:05
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 5 meses
Puntos: 56
Respuesta: sumadora

Cambia ope1.value por +ope1.value
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #6 (permalink)  
Antiguo 12/11/2011, 09:02
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 11 meses
Puntos: 28
Respuesta: sumadora

Cita:
Iniciado por America|UNK Ver Mensaje
Cambia ope1.value por +ope1.value
no entiendo por que quieres que modifique eso? ok el problema no esta en el primer script este funciona correctamente en el ultimo que subi es el que no me funciona.
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #7 (permalink)  
Antiguo 12/11/2011, 15:24
Avatar de gilber966  
Fecha de Ingreso: abril-2010
Mensajes: 117
Antigüedad: 14 años
Puntos: 4
Respuesta: sumadora

Si usas parseint no deberias usar eval, creo que deberias hacer la operacion directamente sobre las variables,

var result = eval(num+pfrs);

eval lo que hace es realizar una operacion a partir de un string, pero tu ya aplicaste parseint, por lo que tienes son ahora numeros.
  #8 (permalink)  
Antiguo 12/11/2011, 17:30
Avatar de gilber966  
Fecha de Ingreso: abril-2010
Mensajes: 117
Antigüedad: 14 años
Puntos: 4
Respuesta: sumadora

Cita:
Iniciado por gilber966 Ver Mensaje
Si usas parseint no deberias usar eval, creo que deberias hacer la operacion directamente sobre las variables,

var result = eval(num+pfrs);

eval lo que hace es realizar una operacion a partir de un string, pero tu ya aplicaste parseint, por lo que tienes son ahora numeros.
entonces no entiendo que es lo que quieres hacer

Etiquetas: html, input
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 02:30.