¿Cuál es el efecto de agregar "return false" a un detector de eventos de clic?

Resuelto Leonel asked hace 15 años • 16 respuestas

Muchas veces he visto enlaces como estos en páginas HTML:

<a href='#' onclick='someFunc(3.1415926); return false;'>Click here !</a>

¿Cuál es el efecto de return falseahí dentro?

Además, normalmente no veo eso en los botones.

¿Se especifica esto en alguna parte? ¿En alguna especificación en w3.org?

Leonel avatar Sep 25 '08 01:09 Leonel
Aceptado

El valor de retorno de un controlador de eventos determina si también debe realizarse el comportamiento predeterminado del navegador. En el caso de hacer clic en enlaces, esto sería seguir el enlace, pero la diferencia es más notable en los controladores de envío de formularios, donde puede cancelar el envío de un formulario si el usuario ha cometido un error al ingresar la información.

No creo que exista una especificación W3C para esto. Todas las interfaces antiguas de JavaScript como esta recibieron el sobrenombre de "DOM 0" y en su mayoría no están especificadas. Quizás tengas suerte leyendo la documentación antigua de Netscape 2.

La forma moderna de lograr este efecto es llamar event.preventDefault(), y esto se especifica en la especificación DOM 2 Events .

Jim avatar Sep 24 '2008 18:09 Jim

Puedes ver la diferencia con el siguiente ejemplo:

<a href="http://www.google.co.uk/" onclick="return (confirm('Follow this link?'))">Google</a>

Al hacer clic en "Aceptar", se devuelve verdadero y se sigue el enlace. Al hacer clic en "Cancelar", se devuelve falso y no se sigue el enlace. Si javascript está deshabilitado, el enlace se sigue normalmente.

HoboBen avatar Sep 25 '2008 09:09 HoboBen