darsga qaytish

Nima uchun "return false" ishlamaydi?

Nima uchun quyidagi kodda return false umuman ishlamaydi?

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

<a href="https://w3.org" onclick="handler()">brauzer w3.org saytiga o'tadi</a>

Brauzer bosish orqali URL manzilini kuzatib boradi, lekin biz buni xohlamaymiz.

Qanday tuzatish kerak?

onclick atributi va ishlov beruvchilar

Brauzer onclick kabi on* atributini o’qiganda, u uning mazmunidan ishlov beruvchi yaratadi.

onclick="handler()" uchun funksiya quyidagicha bo’ladi:

function(event) {
  handler() // onclick ning mazmuni
}

Endi ko’rishimiz mumkinki, handler() tomonidan qaytarilgan qiymat ishlatilmaydi va natijaga ta’sir qilmaydi.

Tuzatish oddiy:

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

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

Shuningdek, biz event.preventDefault() dan foydalanishimiz mumkin:

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

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