Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

207
Vistas
¿Cómo obtener el valor de un control deslizante de rango para que pueda usarse en un cálculo y mostrar un resultado?

Soy un completo principiante tratando de construir una calculadora de energía solar (¿por qué me hice esto a mí mismo?) He intentado todo pero todavía estoy atascado. La idea es que los usuarios usen un control deslizante de rango para agregar su factura mensual de electricidad a una calculadora. Luego, quiero usar lo que ingresaron en un cálculo para convertir su factura mensual a kwh, pero el registro de la consola muestra "indefinido". Tengo algunas constantes que funcionan con el valor ingresado por el usuario. El cálculo funciona si se usa sin la entrada del usuario para la factura mensual de electricidad: una constante (lo probé) pero no puedo entender cómo usar la entrada del usuario en el cálculo. Aquí hay un codepen de lo que hice. La función que obtuve allí es probablemente un desastre total, pero no sé cómo solucionarlo. Por favor, ayuda, mi cerebro se ha vuelto papilla y esto es para mañana. Empecé hace como un mes con esto de tener que reiniciar todo el tiempo porque hay mucho que necesita entrar aquí y no sé lo que estoy haciendo.

 <h2>Solar Power Calculator</h2> Monthly Electricity Bill: <input type="range" min="100" max="10000" value="0" step="1" onchange="getSliderValues(this.value)" style="width:400px;"> <span id="monthlyBillval">0%</span> <h2>Monthly Bill to KWH <span id="monthlyBill"></span></h2> //initial variables var phases = 1; var systemCost = 247765.00; var sizeOfPanelArray = 8.19; var batteryBankCapacity = 22.20; var payBackPeriod = 5.3; var monthlyEstimatedSavings = 3864.00 // var amortData = []; // Constants var singlePhaseBaseCost = 41000; var threePhaseBaseCost = 69000; var panelCost = 2639; var fiveKwSinglePhaseInverter = 17371; var eightKwSinglePhaseInverter = 28344; var twelveKwThreePhaseInverter = 43783; var batteryCost = 29160; var panelPeakPower = 455; var avgDailySunHrs = 5.33; var avgDaysPerMonth = 30.5; var batteryCapacity = 7.4; var maxCeilingDiscountedBracketInRands = 1440; var lowBracketKwh = 600; var discountedTarrif = 2.400395; var higherTarrif = 3.312575; function getSliderValues (billSlider){ var monthlyBill = document.getElementById('monthlyBill'); var monthlyBillval = document.getElementById('monthlyBillval'); monthlyBillval.innerHTML = billSlider;} var monthlyBillToKwhConversion; if (monthlyBillval < maxCeilingDiscountedBracketInRands) { monthlyBillToKwhConversion = monthlyBillval / higherTarrif } else if (monthlyBillval > maxCeilingDiscountedBracketInRands) { monthlyBillToKwhConversion = Math.round (((monthlyBillval - maxCeilingDiscountedBracketInRands)/ higherTarrif) + (maxCeilingDiscountedBracketInRands/discountedTarrif)) } console.log("monthly bill to kWh conversion:" + monthlyBillToKwhConversion);
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Está intentando acceder a la variable monthlyBillval desde fuera del alcance de la función donde está definida. Eso no es posible en Javascript ya que solo se puede acceder a cada variable dentro del alcance de la función que la definió.

Por lo tanto, todas sus verificaciones if arrojan false , por lo tanto, monthlyBillToKwhConversion permanece sin definir

Considere devolver algo de su función si necesita fuera de ella.

Además, en Javascript moderno se considera una mejor práctica evitar la declaración var porque podría generar resultados inesperados y estropear el alcance global. Debe usar let y const para definir sus variables.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Su código tiene algunos problemas de alcance, también:

 var monthlyBillval = document.getElementById('monthlyBillval');

mensualBillval es un elemento no valor, no puede hacer esto:

 monthlyBillToKwhConversion = monthlyBillval / higherTarrif

puedes ver el código de trabajo en codeopen

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda