Változókkal számolás
Sziasztok! A segítségetek kérném.
Azt szeretném elérni, hogy egy formba beírt értékkel és változókkal számolni tudjak.
Miért nem jó így?próbáltam így is:
■ Azt szeretném elérni, hogy egy formba beírt értékkel és változókkal számolni tudjak.
Miért nem jó így?
<input type="number" name="gomba" step="0.1" value="2" min="1" max="100">
var g = 2 * document.getElementById('gomba').value;
<head>
<title>recept</title>
</head>
var g = document.recept.gomba.value * 2;
ID
id
-ra kérdezel, akkor miért nem adsz meg nekiid
-t?A második esetben pedig az űrlapnak is kellene adni egy elemet (
name
), és abban fog keresniJavaScript
Adjuk hozzá az szövegmezőt:
A hiba felderítésére nyissuk meg a böngészőnk debug eszközeit. Chrome esetén ez a JavaScript Console vagy JavaScript Konzol. Itt váltsunk a Sources vagy Források fülre (remélem, így hívják). Töltsük újra az oldalt hogy megjelenjen a forrás. Helyezzünk el egy kattintással egy piros pontot a
var g =...
sorba. Ez az úgynevezett breakpoint vagy töréspont, azaz amikor ide ér a program végrehajtásában a böngésző, meg fog állni és megvizsgálhatjuk a tényállást.Ha újratöltjük most az oldalt, látni fogjuk, hogy közvetlenül az oldal betöltése után megáll a break pointon a program, de ha tovább kattintjuk a play gombbal, akkor soha többet. Tehát a program helyesen működik, csak nem jókor, bármit írunk a mezőbe, nem fog változni az eredmény.
Hogy ezt orvosoljuk, meg kell ismerkedni az eseménykezelőkkel vagy event listenerekkel. Ezek azt csinálják, hogy egy adott esemény hatására végrehajtanak egy programkódot. Először is, csomagoljuk a végrehajtani kívánt kódot egy függvénybe:
addEventListener
függvényhívással tehetjük meg.szam
mezőkeyup
eseményére reagálunk. Ez azért fontos, mert akeyup
eseménykor már benne lesz az érték a mezőben, amíg például akeydown
eseménykor még nem.Ha mindent jól csináltunk, akkor remélhetőleg működni fog a program és minden billentyűleütésre frissíti az eredmény mezőt. A biztonság kedvéért ellenőrizzük a megfelelő breakpoint alkalmazásával is.
THX