kembali ke pelajaran

Mengapa "return false" tidak berfungsi?

pentingnya: 3

Kenapa pada kode dibawah return false tidak berfungsi sama sekali?

<script>
  function handler() {
    alert( "..." );
    return false;
  }
</script>

<a href="https://w3.org" onclick="handler()">browser akan membuka w3.org</a>

browser akan mengikuti URL yang di klik, tapi kita tidak mau hal itu terjadi.

Bagaimana cara memperbaikinya?

Pada saat browser membaca atribut on* seperti onclick, browser akan membuat sebuah penangan (handler) dari kontennya.

Untuk onclick"handler()" fungsinya akan menjadi:

function(event) {
  handler() // konten dari onclick
}

Sekarang kita bisa melihat bahwa nilai yang dikembalikan oleh handler() tidak digunakan dan tidak mempengaruhi hasilnya.

Cara memperbaikinnya mudah:

<script>
  function handler() {
    alert("...");
    return false;
  }
</script>

<a href="https://w3.org" onclick="return handler()">w3.org</a>

Kita juga bisa menggunakan event.preventDefault(), seperti ini:

<script>
  function handler(event) {
    alert("...");
    event.preventDefault();
  }
</script>

<a href="https://w3.org" onclick="handler(event)">w3.org</a>