Respuestas:
A menudo, en los controladores de eventos, como onsubmit
devolver falso, es una forma de decirle al evento que no se active realmente. Entonces, digamos, en el onsubmit
caso, esto significaría que el formulario no se envía.
event.preventDefault()
para esta funcionalidad. Creo que devolver falso es obsoleto y ya no funciona.
return false
está en el método, ¿esto cambia algo?
Supongo que te estás refiriendo al hecho de que a menudo tienes que poner un 'retorno falso'; declaración en sus controladores de eventos, es decir
<a href="#" onclick="doSomeFunction(); return false;">...
El "retorno falso"; en este caso evita que el navegador salte a la ubicación actual, como lo indica href = "#"; en cambio, solo se ejecuta doSomeFunction (). Es útil para cuando desea agregar eventos a las etiquetas de anclaje, pero no quiere que el navegador salte hacia arriba y hacia abajo a cada anclaje con cada clic
Se utiliza para detener la propagación del evento . Verá cuando tenga dos elementos, ambos con un controlador de eventos de clic (por ejemplo)
-----------------------------------
| element1 |
| ------------------------- |
| |element2 | |
| ------------------------- |
| |
-----------------------------------
Si hace clic en el elemento interno (elemento2), se activará un evento de clic en ambos elementos: 1 y 2. Se llama "burbujeo de eventos". Si desea controlar el evento solo en element2, el controlador de eventos debe devolver false para detener la propagación del evento.
Otro ejemplo será el enlace onclick handler. Si desea detener el funcionamiento de un formulario de enlace. Puede agregar un controlador onclick y devolver false. Para evitar que el evento se propague al controlador predeterminado.
false
de un controlador de eventos evitará la acción predeterminada asociada con un evento; También puede hacer esto llamando event.preventDefault()
o configurando event.returnValue = false
(IE); para evitar que el evento burbujee, tendrás que llamar event.stopPropagation()
o configurar event.cancelBubble = true
(IE)
Er ... ¿qué tal en una función booleana para indicar 'no es cierto'?
También llegué a esta página después de buscar "js, cuándo usar 'return false;' Entre los otros resultados de búsqueda se encontraba una página que encontré mucho más útil y directa, en el sitio CSS-Tricks de Chris Coyier: La diferencia entre 'return false;' y 'e.preventDefault ();'
La esencia de su artículo es:
function () {return false; }
// ES IGUAL A
función (e) {e.preventDefault (); e.stopPropagation (); }
aunque todavía recomendaría leer el artículo completo.
Actualización: después de discutir los méritos de usar return false; como un reemplazo para e.preventDefault (); & e.stopPropagation (); uno de mis compañeros de trabajo señaló que return false también detiene la ejecución de devolución de llamada, como se describe en este artículo: jQuery Events: Stop (Mis) Using Return False .
function() { return false; }
ES IGUAL A function(e) { e.preventDefault(); e.stopPropagation(); }
, pero en js puro, no es lo mismo, en realidad function() { return false; }
es IGUAL A. function(e) { e.preventDefault(); }
Que no deja de propagación.
Creo que una mejor pregunta es, ¿por qué en un caso en el que está evaluando un conjunto booleano de valores de retorno, NO utilizaría verdadero / falso ? Quiero decir, probablemente podrías tener verdadero / nulo, verdadero / -1, otros misceláneos. Javascript "falsos" valores para sustituir, pero ¿por qué haría eso?
Cuando desee activar el código javascript desde una etiqueta de anclaje, se debe usar el controlador onclick en lugar del javascript: pseudo-protocolo. El código javascript que se ejecuta dentro del controlador onclick debe devolver verdadero o falso (o una expresión que evalúe como verdadera o falsa) de nuevo a la etiqueta en sí; si devuelve verdadero, el HREF del ancla se seguirá como un enlace normal. Si devuelve falso, se ignorará el HREF. Es por eso que "devuelve falso"; a menudo se incluye al final del código dentro de un controlador onclick.
Cuando se llama a una declaración de retorno en una función, se detiene la ejecución de esta función. Si se especifica, un valor dado se devuelve al llamador de la función. Si se omite la expresión, se devuelve undefined en su lugar.
Para obtener más información, consulte la página de documentos de MDNreturn
.
return false usando solo si tiene alguna función de trabajo (por alguna prueba) o si desea detener alguna función, por ejemplo use return false al final "onsubmit"
Además, este breve e interesante enlace para leer a través de https://www.w3schools.com/jsref/event_preventdefault.asp
Definición y uso
El método preventDefault () cancela el evento si es cancelable, lo que significa que la acción predeterminada que pertenece al evento no ocurrirá.
Por ejemplo, esto puede ser útil cuando:
Clicking on a "Submit" button, prevent it from submitting a form
Clicking on a link, prevent the link from following the URL
Nota: No todos los eventos son cancelables. Use la propiedad cancelable para averiguar si un evento es cancelable.
Nota: El método preventDefault () no impide una mayor propagación de un evento a través del DOM. Use el método stopPropagation () para manejar esto.