Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

154
Views
cómo hacer una función para activar el valor de los atributos

Hola a todos, estaba trabajando para hacer que esta calculadora funcionara y tenía otras formas de hacerlo, pero quería hacerlo de una manera particular.

 <form action=""> <label for="firstVal">numberA</label><br> <input type="number" name="firstVal" id="firstVal"><br> <label for="SecondVal">numberB</label><br> <input type="number" name="SecondVal" id="SecondVal"><br> <label for="Result">Result</label><br> <input type="number" name="Result" id="Result"readonly><br> <br><br> <input type="button" value="+" onclick="Calculate()"> <input type="button" value="-" onclick="Calculate()"> <input type="button" value="x" onclick="Calculate()"> <input type="button" value="/" onclick="Calculate()"> <input type="button" value="C" onclick="Calculate()"> </form>
 var firstNum = document.getElementById("firstVal").innerHTML; var secondNum = document.getElementById("SecondVal").innerHTML; var Resul = document.getElementById("Result"); var Operator= document.querySelectorAll('value'); function Calculate() { var Sol; switch (Operator){ case "+" : Sol=firstNum+secondNum console.log(Sol) break; case "-" : Sol=firstNum-secondNum console.log(Sol) break; case "x" : Sol=firstNum*secondNum console.log(Sol) break; case "/" : Sol=firstNum/secondNum console.log(Sol) break; case "C" : firstNum&secondNum&Resul==null break; }; };

mi problema está en el interruptor, como puede ver, estoy tratando de crear una función que determinará qué operación realizará en función del valor del atributo que le di a la declaración del interruptor Operador como clave para verificar y no sé si me estoy perdiendo algo o estoy haciendo algo mal, por favor déjame saber si hay alguna forma de lograr lo anterior

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Cosas que cambié:

  • incluir el valor del botón en la llamada de función (alternativamente, fn (evento) -> valor = evento.objetivo.valor)
  • obtenga la referencia a las entradas fuera de la función, pero dado que los valores del número A/B cambian, obtenga los valores reales cada vez que se inicia la función
  • los valores de las entradas son cadenas, así que conviértalas en números con el prefijo + (alternativamente con Number('str'))
  • calcule el interruptor interno 'Sol', pero establezca como resultado solo una vez al final de la función
  • en el caso de 'C', como alternativa a restablecer el valor de cada entrada a una cadena vacía, simplemente llame a form.reset() y termine la función (no hay resultado para establecer en este caso) llamando a 'return'

Mejoras sugeridas:

  • firstNum, secondNum, firstVal, secondVal, numberA, numberB - muchos nombres diferentes :) Es mejor apegarse al mismo término cada vez
  • en lugar de configurar el controlador de clics en cada botón, use el evento de envío del formulario con .preventDefault()

 var formElement = document.getElementById('calculate'); var firstInputElement = document.getElementById("firstVal"); var secondInputElement = document.getElementById("secondVal"); var resultInputElement = document.getElementById("Result"); function Calculate(value) { var nA = +firstInputElement.value; var nB = +secondInputElement.value; var Sol; switch (value) { case "+": Sol = nA + nB break; case "-": Sol = nA - nB break; case "x": Sol = nA * nB break; case "/": Sol = nA / nB break; case "C": formElement.reset() return; }; resultInputElement.value = Sol };
 <form action="" id="calculate"> <label for="firstVal">numberA</label><br> <input type="number" name="firstVal" id="firstVal"><br> <label for="SecondVal">numberB</label><br> <input type="number" name="secondVal" id="secondVal"><br> <label for="Result">Result</label><br> <input type="number" name="Result" id="Result" readonly><br> <br><br> <input type="button" value="+" onclick="Calculate(this.value)"> <input type="button" value="-" onclick="Calculate(this.value)"> <input type="button" value="x" onclick="Calculate(this.value)"> <input type="button" value="/" onclick="Calculate(this.value)"> <input type="button" value="C" onclick="Calculate(this.value)"> </form>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!