JavaScript if-else laused
Eelmise korra koodile lisame sisu poolele ühe uue rea:
<div id="veateade" style="display: none; color: red;"></div>
Selle tulemusena saab kood järgmine:
<div id="sisu">Palun sisesta oma nimi:</div>
<div id="veateade" style="display: none; color: red;"></div>
<input class="input" type="text" id="nimi"></input><br>
<button id="nupp" class="btn btn-primary" type="button" onclick="muuda()">Edasta andmed</button>
Ehk siis, lisasime uue bloki, mille identifikaator on veateade, mis on esialgu peidetud (display: none;) ja mille tektsivärv on punane (color: red;=
Nüüd täiendame esialgset JavaScript’i koodi järgmise if-else lausetega (nt selliselt, et kontrollitakse sisestatud andmete pikkust):
function muuda() { var nimi=document.getElementById("nimi").value; if (nimi.length==0) { document.getElementById("veateade").style.display="block"; document.getElementById("veateade").innerHTML ="Palun sisesta nimi!"; } else if (nimi.length<5) { document.getElementById("veateade").style.display="block"; document.getElementById("veateade").innerHTML ="Nimi peab olema vähemalt 5 märki pikk!"; } else { document.getElementById("sisu").innerHTML = "Sinu nimi: "+nimi; document.getElementById("nimi").style.display="none"; document.getElementById("veateade").style.display="none"; document.getElementById("nupp").disabled=true;
} }
Eeltoodud kood koosneb kolmest tingimusest:
- if-tingimuse korral kontrollitakse, kas muutuja nimi pikkust, kasutades JavaScript’i sisseehitatud funktsiooni length, mis annab sisestatud andmete pikkuse märkides (esmalt siis kontrollitakse, kas üldse on:
- muudetakse blokk veateade nähtavaks
- muudetakse bloki veateade sisu: “Palun sisesta nimi!”
- kui 1. tingimus ei ole täidetud (st muutuja nimi pikkus on suurem kui 0), siis liigutakse edasi else if-tingimuse juurde, kontrollitakse, kas muutuja nimi pikkus on väiksem kui 5:
- muudetakse blokk veateade nähtavaks
- muudetakse bloki veateade sisu: “Nimi peab olema vähemalt 5 märki pikk!”
- kui 1. ja 2. tingimus ei ole täidetud (st muutuja nimi pikkus on 5 või rohkem märki), siis liigutakse edasi else-tingimuse juurde:
- peidetakse blokk veateade
JavaScript for-tsükkel
For-tsükkel võimaldab teha korduvaid tegevusi.
Näiteks saame else if-tingimusele lisada järgmise osa koodist:
tekst="";
tahed=nimi.split("");
for (i=0;i<nimi.length;i++)
{
tekst=tekst+"\r\n"+tahed[i];
}
alert(tekst);
Koodi selgitus on siis järgmine:
- lisame muutuja tekst, mille algväärtuseks on tühi tekst ehk string, jutumärgid, mille vahel ei ole ühtegi märki (“”)
- tekitame massiivi (massiiv on andmete jagada), jagades olemasoleva muutuja nimi üksikutest tähtedeks, kasutades JavaScript’i sisseehitud funktsiooni split ja omistades saadud tulemuse muutujale tahed
- seejärel tekitame for-tsükli, kus:
- kasutatakse loendurit i,
- alustades nullist => i=0;
- kuni muutuja nimi tähtede arvust ühe võrra väiksema arvuni (kuna masiivi liikmeid hakatakse loendama 0ist, siis toimub ka kordus pikkus-1ni) => i<nimi.length;
- suurendades iga kord i väärtust ühe võrra – i++
- lisatakse:
- muutujale tekst => tekst=tekst
- uus rida => +”\r\n”
- massiivis vastal kohal olev täht => +tahed[i];
- kuvatakse saadud tekst ekraaniteatena => alert(tekst);