Ми хочемо зробити цей проєкт з відкритим кодом доступним для людей у всьому світі.

Допоможіть перекласти цей підручник вашою мовою!

назад до уроку

Чому "return false" не працює?

важливість: 3

Чому в коді нижче return false взагалі не працює?

<script> function handler() { alert( "..." ); return false; } </script> <a href="https://w3.org" onclick="handler()">браузер перейде на w3.org</a>

Браузер переходить за URL-адресою після кліку, але нам це не потрібно.

Як це виправити?

Коли браузер зчитує атрибут on*, як onclick, він створює обробник із його вмісту.

Для onclick="handler()" функція буде:

function(event) { handler() // вміст onclick }

Тепер ми бачимо, що значення, яке повертає handler(), не використовується і не впливає на результат.

Виправлення просте:

<script> function handler() { alert("..."); return false; } </script> <a href="https://w3.org" onclick="return handler()">w3.org</a>

Також ми можемо використовувати event.preventDefault(), наприклад:

<script> function handler(event) { alert("..."); event.preventDefault(); } </script> <a href="https://w3.org" onclick="handler(event)">w3.org</a>