Proč nefunguje „return false“?
důležitost: 3
Proč v následujícím kódu vůbec nefunguje return false?
<script>
function handler() {
alert( "..." );
return false;
}
</script>
<a href="https://w3.org" onclick="handler()">prohlížeč přejde na w3.org</a>
Prohlížeč po kliknutí pokračuje na URL, ale to my nechceme.
Jak to opravit?
Když prohlížeč načte atribut on*, např. onclick, vytvoří handler z jeho obsahu.
Pro onclick="handler()" funkce bude:
function(událost) {
handler() // obsah atributu onclick
}
Nyní vidíme, že hodnota, kterou vrátí handler(), není použita a nemá vliv na výsledek.
Oprava je jednoduchá:
<script>
function handler() {
alert("...");
return false;
}
</script>
<a href="https://w3.org" onclick="return handler()">w3.org</a>
Můžeme také použít událost.preventDefault() následovně:
<script>
function handler(událost) {
alert("...");
událost.preventDefault();
}
</script>
<a href="https://w3.org" onclick="handler(event)">w3.org</a>