Queremos que este proyecto de código abierto esté disponible para personas de todo el mundo.

Ayuda a traducir el contenido de este tutorial a tu idioma!

regresar a la lección

¿Por qué "return false" no funciona?

importancia: 3

¿Por qué en el código de abajo return false no funciona en absoluto?

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

El navegador sigue la URL al hacer clic, pero no la queremos.

¿Como se arregla?

Cuando el navegador lee un atributo on* como onclick, crea el controlador a partir de su contenido.

Para onclick="handler()" la función será:

function(event) { handler() // el contenido de onclick }

Ahora podemos ver que el valor devuelto por handler() no se usa y no afecta el resultado.

La solución es simple:

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

También podemos usar event.preventDefault(), así:

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