Deo zbornika Učimo Javascript
Sprečavanje podrazumevanog ponašanja
Neki HTML elementi imaju podrazumevano ponašanje na događaje, određeno njihovom namenom. Na primer, pregledač otvara URL adresu kad kliknemo link ili šalje podatke serveru na submit
forme.
Možemo sprečiti podrazumevanu reakciju HTML elementa na neki događaj, pomoću metode preventDefault()
. Ova metoda pripada event
objektu, koji je dostupan u povratnoj funkciji.
Primer: sprečavanje slanja forme
U narednom primeru, selektujemo form
element i dodajemo funkciju koja će biti izvršena kada submit
bude okinut. Unutar te funkcije se sprečava podrazumevano ponašanje, odnosno slanje forme na submit
:
document.querySelector('form').addEventListener('submit', function(e) {
e.preventDefault()
})
preventDefault
se redovno koristi kada ne želimo da se refrešuje stranica prilikom slanja forme, kao i kada želimo dodatnu validaciju podataka pre slanja.
Ukoliko sprečimo podrazumevano slanje forme putem HTML-a, onda podatke moramo poslati putem Javascripta.
Primer: sprečavanje otvaranja linka
Neki sajtovi iritiraju posetioce koji kliknu na link pitanjem: „Da li ste sigurni da želite da pratite ovaj link?“. To se implementira na sledeći način:
const allLinks = document.getElementsByTagName('a')
for (let i = 0 i < allLinks.length i++) {
allLinks[i].addEventListener('click', function(e) {
if (!confirm('Želite li da pratite link?')) e.preventDefault()
})
}
Ugrađena funkcija confirm
vraća true
ili false
, zavisno od izbora. Samo u slučaju da posetilac odbije, poziva se metod preventDefault()
, koji sprečava otvaranje linka.