Kezdőoldal » Számítástechnika » Programozás » Javascript undefined eltüntetése?

Javascript undefined eltüntetése?

Figyelt kérdés

Sziasztok!


Kezdő vagyok a Javascriptben, és lenne egy kódom, viszont mikor lefuttatom működik, jól, viszont 2 hiba van benne.


<form name="kerdessor" action="" onsubmit="return kerdesek()" method="post">

10+20 = <br> <input type="text" name="egy"><br />

<input type="submit" value="Beküldés">

</form>

<script>

egyjo = 30;


function kerdesek() {

egy = document.forms["kerdessor"]["egy"].value;

function ok(){

if(egy==egyjo){

document.write("<font color='green'>",egy,"</font>");

}else{

document.write("<font color='red'>",egy,"</font>");

}

}

document.write(" Válaszod: <br>",ok(),"<br> Helyes válasz: <font color='green'>",egyjo,"</font>");

}

</script>


Itt az a lényeg -lehet meglehetne oldani egyszerűbben-, hogy az első mező el van 'egy'-nek nevezve, és ügye az 'egy' mező értéke egyben egy globális 'egy' változóban van eltárolva, és ha az megegyezik a globális, 'egyjo' változóval, kiírja a választ és a helyes választ is zölddel, ha nem helyes, akkor azt pirossal, míg a helyeset mellé/alá zölddel.

Nos, a hiba:


A kiírás esetén a válasz a 'Válaszod' szó ELÉ kerül, miközben alá kéne, de legalábbis a 'Válaszod' szó UTÁN.

Másik hiba, hogy kiírja, hogy 'undefined', értem, hogy nem definiált, de ezt pontosan, ennél hogy lehetne megoldani?


Előre is köszönöm!



2017. jún. 23. 22:24
 1/6 anonim ***** válasza:
wow
2017. jún. 23. 22:32
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
typeof egy === 'undefined' ? '' : egy
2017. jún. 23. 22:59
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:

Mert az ok() függvény nem ad vissza semmit, csak document.write-ol. Mivel az ok függvény paraméterbe be van adva a document.write-nak, az ok() előbb fut le mint a document.write. A megoldás az ok() függvényben a document.write-ot lecserélni return-re.

Egyébként ez nem valami szép megoldás, sok a document.write.

2017. jún. 23. 23:05
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:
Köszönöm a segítségeket! Még csak most próbálgatom a működési elveit. :)
2017. jún. 23. 23:25
 5/6 anonim ***** válasza:

Ez azért fordul elő, mert a végrehajtás sorrendje:

1. Az ürlap elküldésekor meghívódik a kerdesek() függvény

2. kerdesek() --> document.write() függvényben szereplő kifejezésben szereplő függvények lefutása, így meghívódik az ok() függvény

3. Az ok() függvény kiírja az "egy" szövegmező értékét a megfelelő színezéssel. De mivel nincs megadva visszatérési értéke (return), ezért az undefined lesz.


Szóval a kerdesek() függyvényben levő document.writeban levő kifejezés így épül fel:

" Válaszod: <br>" + undefined + > "Helyes válasz: <font color='green'>" + 30 + "</font>"


Végül kiíródik a fenti kifejezés.


Javítása (csak hogy működőképes legyen): az ok() függvényben a document.write-ot cseréld ki return-re:

[link]

2017. jún. 24. 00:06
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:

Itt egy példa az "elegánsabb" megoldásra:

[link]

2017. jún. 24. 01:14
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!