JavaScriptben szeretnék egy hatványozásos programot készíteni, de az éerték folyton NaN. Biztos, fhogy jól érzékeli a gombot, meg a többi inputot. Valami más hibatikája van! (Ez a második js "programom".) Hogy lehetne ezt megoldani?
A kód:
const alap = document.getElementById('alap')
const kitevo = document.getElementById('kitevo')
const calcB = document.getElementById('calculate')
const output = document.getElementById('answer')
let answer = "0"
output.value = answer
let value = eval(alap.value)
let modifier = eval(kitevo.value)
function calculate() {
answer = eval(answer)
answer = value **= modifier
output.value = answer
}
calcB.addEventListener('click', calculate())
Sok hiba van a kódban (*-gal jelölve a fontosabb részeket):
- a calculate szót használod id-nek is és függvény névnek is
-* addEventListener -nél a függvényt meghívod, ed csak a nevét kéne átadni
- az eval nem kell (de ez nem okoz gondot egyébként, viszont nem jó ötlet használni, mert ha inputnak javascript kódot ad meg valaki, akkor az gáz lesz, mert lefuttatja)
-* az inputok értékét csak egyszer kéred le, amikor először lefut a script. Ezeket minden gombnyomáskor lekéne kérni, hogy a friss eredménnyel tudjon számolni
-* answer = value **= modifier sorban a ** után nem kell az = jel
(- kiszedtem az eredmény 0-ra beállítását induláskor)
Azt hiszem talán ennyi, ha esetleg kihagytam volna valamit akkor itt hagyom a működő verziót:
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<input id='alap'></input>
<input id='kitevo'></input>
<button id='calculate'>calc</button>
<input id='answer'></input>
<script>
const alap = document.getElementById('alap')
const kitevo = document.getElementById('kitevo')
const calcB = document.getElementById('calculate')
const output = document.getElementById('answer')
function calculate_fn() {
let value = alap.value
let modifier = kitevo.value
answer = value ** modifier
output.value = answer
}
calcB.addEventListener('click', calculate_fn)
</script>
</body>
</html>
A bemenő értékek ellenőrzésével:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!