Когда и зачем "возвращать false" в JavaScript? - программирование

Когда и зачем "возвращать false" в JavaScript?

Когда и почему return false в JavaScript?

4b9b3361

Ответ 1

Часто в обработчиках событий, таких как onsubmit, возврат false - это способ сообщить, что событие не срабатывает. Так, скажем, в случае onsubmit это означало бы, что форма не отправлена.

Ответ 2

Я предполагаю, что вы имеете в виду тот факт, что вам часто приходится указывать "return false"; в обработчиках событий, т.е.

<a href="#" onclick="doSomeFunction(); return false;">...

"return false"; в этом случае браузер не перескакивает в текущее местоположение, как указано href= "#" - вместо этого выполняется только doSomeFunction(). Это полезно, когда вы хотите добавлять события для привязки тегов, но не хотите, чтобы браузер каждый раз прыгал вверх и вниз на каждый якорь

Ответ 3

Используется для остановки распространения события. Вы видите, когда у вас есть два элемента как с обработчиком события клика (например)

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

Если вы нажмете на внутренний элемент (element2), он вызовет событие click в обоих элементах: 1 и 2. Он называется "Событие пузыря". Если вы хотите обрабатывать событие только в элементе2, тогда обработчик события должен вернуть false, чтобы остановить распространение события.

Другим примером будет ссылка onclick handler. Если вы хотите остановить работу ссылки. Вы можете добавить обработчик onclick и вернуть false. Чтобы остановить событие от распространения до обработчика по умолчанию.

Ответ 4

Er... как в булевой функции указать 'not true'?

Ответ 5

Я также пришел на эту страницу после поиска "js, когда использовать" return false "; Среди других результатов поиска была страница, которую я нашел гораздо более полезной и простой, на сайте Chris Coyier CSS-Tricks: Разница между 'return false и' e.preventDefault();

Суть его статьи:

function() {return false; }

//Эквивалентно

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

хотя я бы по-прежнему рекомендовал прочитать всю статью.

Обновление:. После утверждения аргументов использования return false; в качестве замены для e.preventDefault(); и e.stopPropagation(); один из моих сотрудников указал, что return false также прекращает выполнение обратного вызова, как описано в этой статье: jQuery События: Stop (Mis) Использование Return False.

Ответ 6

При использовании функции jQuery each значение true или false имеет смысл. См. doc

Ответ 7

Я думаю, что лучший вопрос: почему в случае, когда вы оцениваете логический набор возвращаемых значений, не могли бы вы использовать true/ false? Я имею в виду, что вы, вероятно, могли бы иметь true/null, true/-1, other misc. Javascript "фальшивые" значения для замены, но зачем вы это делаете?

Ответ 8

Если вы хотите вызывать код javascript из тега привязки, следует использовать обработчик onclick, а не псевдопротокол javascript: Код javascript, который выполняется внутри обработчика onclick, должен возвращать true или false (или выражение, чем evalues ​​to true или false) обратно к самому тегу - если он возвращает true, тогда HREF привязки будет следовать как обычная ссылка. Если он возвращает false, тогда HREF будет проигнорирован. Вот почему "вернуть ложь"; часто включается в конец кода внутри обработчика onclick.

Ответ 9

Вы используете return false, чтобы что-то не происходило. Поэтому, если у вас есть script, выполняемый при отправке, то возврат false будет препятствовать работе отправки.

Ответ 10

Когда в функции вызывается оператор return, выполнение этой функции останавливается. Если указано, данное значение возвращается вызывающему функции. Если выражение опущено, вместо него возвращается undefined.

Для получения более подробной информации о странице документов MDN для return.

Ответ 11

Простой ответ: если вы хотите остановить процесс вашей функции, вы используете это.

Пример:

function foo(a){
    if(a == 'No'){
    alert('Okay');
    return false;
    };
// your syntax
}

Это просто: если var "a" - "Нет", то "О'кей" и остановите свою функцию.