Quando e perché “restituire false” in JavaScript?

Quando e perché return false in JavaScript?

Spesso, nei gestori di eventi, come onsubmit , restituire false è un modo per dire all’evento di non essere effettivamente triggersto. Quindi, nel caso onsubmit , ciò significherebbe che il modulo non viene inviato.

Immagino che tu ti stia riferendo al fatto che spesso devi mettere un ‘return false’; dichiarazione nei gestori di eventi, es

 ... 

Il “ritorno falso”; in questo caso impedisce al browser di saltare alla posizione corrente, come indicato da href = “#” – invece, solo doSomeFunction () viene eseguito. È utile quando vuoi aggiungere eventi ai tag di ancoraggio, ma non vuoi che il browser salti su e giù per ogni ancora ad ogni clic

È usato per fermare la propagazione dell’evento . Vedete quando avete due elementi entrambi con un gestore di eventi click (per esempio)

 ----------------------------------- | element1 | | ------------------------- | | |element2 | | | ------------------------- | | | ----------------------------------- 

Se fai clic sull’elemento interno (elemento2), verrà triggersto un evento click in entrambi gli elementi: 1 e 2. Si chiamerà “Event bubbling”. Se si desidera gestire l’evento solo in element2, il gestore eventi deve restituire false per interrompere la propagazione dell’evento.

Un altro esempio sarà il gestore onclick del collegamento. Se si desidera interrompere il funzionamento di un modulo di collegamento. È ansible aggiungere un gestore onclick e restituire false. Per interrompere la propagazione dell’evento al gestore predefinito.

Ehm … che ne dici di una funzione booleana per indicare “non vero”?

Sono anche venuto su questa pagina dopo aver cercato “js, when to use” return false; ” Tra gli altri risultati di ricerca c’era una pagina che ho trovato molto più utile e diretta, nel sito CSS-Tricks di Chris Coyier: La differenza tra “return false;” e ‘e.preventDefault ();’

Il succo del suo articolo è:

function () {return false; }

// È UGUALE A

function (e) {e.preventDefault (); e.stopPropagation (); }

anche se consiglierei comunque di leggere l’intero articolo.

Aggiornamento: dopo aver discusso i vantaggi dell’utilizzo di return false; come sostituto di e.preventDefault (); & e.stopPropagation (); uno dei miei colleghi ha sottolineato che return false interrompe anche l’esecuzione del callback, come descritto in questo articolo: jQuery Events: Stop (Mis) Using Return False .

Quando si usano le funzioni di jQuery, restituire true o false ha un significato. Vedi il documento

Penso che una domanda migliore sia: perché in un caso in cui stai valutando un insieme booleano di valori di ritorno, NON utilizzeresti true / false ? Voglio dire, potresti probabilmente avere true / null, true / -1, altri misc. Javascript “falsy” valori da sostituire, ma perché lo faresti?

Quando si desidera triggersre il codice javascript da un tag di ancoraggio, è necessario utilizzare il gestore onclick anziché il javascript: pseudo-protocollo. Il codice javascript che viene eseguito all’interno del gestore onclick deve restituire true o false (o un’espressione che evalida a true o false) di nuovo al tag stesso; se restituisce true, l’HREF dell’ancora verrà seguito come un collegamento normale. Se restituisce false, l’HREF verrà ignorato. Questo è il motivo per cui “restituisci falso”; è spesso incluso alla fine del codice all’interno di un gestore onclick.

Si usa return false per impedire che qualcosa accada. Quindi se hai uno script in esecuzione su submit, return false impedirà il funzionamento di submit.

restituisce false usando solo se hai qualche funzione in comune (con qualche test) o se vuoi interrompere qualche funzione, ad esempio usa return false alla fine “onsubmit”

Quando viene richiamata un’istruzione return in una funzione, l’esecuzione di questa funzione viene interrotta. Se specificato, viene restituito un determinato valore al chiamante della funzione. Se l’espressione è omessa, viene restituito undefined.

Per ulteriori informazioni, consulta la pagina dei documenti MDN per la return .