Остановить выполнение скрипта | JavaScript
Прервать работу скрипта или в чём разница между return; return false; return true;
Если не нужно знать достигла ли функция положительного исхода, то достаточно указать return без значения:
Если дальнейшее выполнение скрипта должно прерываться (или развиваться по другому пути) при достижении положительного исхода рассматриваемой функции, то return присваивается значение, чаще false или true :
Как использовать return, когда функция вызывает саму себя (рекурсия)
Возврат массива из функции
Как остановить выполнение js-скрипта?
Вот, как это записать на JS?
Подскажите, пожалуйста.
P. S. Да, совсем забыл. Класс «disabled» подставляется автоматически, совсем другим скриптом.
- Вопрос задан более трёх лет назад
- 42178 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 3

Миром правят маленькие с#@&ки
if (проверяем состояние кнопки) < // Запускаем что-то >
Ответ написан более трёх лет назад
Нравится 5 11 комментариев

Владимир Новицкий @Novitsky Автор вопроса
А конкретнее можно? На основе моей схемы.
Я в JS не особо понимаю.

Так код на jsfiddle.net запостите.

Владимир Новицкий @Novitsky Автор вопроса
Короче, остановить у меня получилось: jsfiddle.net/qoh0oft5
Теперь надо, как-то запустить.

Вам следует знать, что форму отправить может не только клик на кнопке. Попытка остановить отправку формы отслеживанием клика — признак новичка.
Самый простой и верный путь — правильно использовать атрибуты элементов форм jsfiddle.net/petroveg/qoh0oft5/5
Но уж если так хочется именно с классами, то jsfiddle.net/petroveg/qoh0oft5/6
Вариант однозначно хуже, ибо вы должны отслеживать кнопку при отправке, тогда как в первом варианте атрибут disabled уже сам по себе предотвращает отправку формы любым пользовательским способом.
Ну и самый отвратный вариант — тип кнопки button. Придётся и отправку, и клик отслеживать jsfiddle.net/petroveg/qoh0oft5/7
Управление состоянием кнопок для первого случая:
function manageButton (status)
Для второго: и третьего
function manageButton (status) < var $button = $(document.forms).filter('[data-container="order"]').find('[data-action="order"]'); if (status) < $button.addClass('disabled'); >else < $button.removeClass('disabled'); >>

Владимир Новицкий @Novitsky Автор вопроса
@Petroveg: Спасибо большое! Буду разбираться и думать.
Насчет классов. Они нужны только для того, чтобы при нажатии на кнопку, при незаполненных полях, рамка у них становилась красная. Для этого есть скрипт: jsfiddle.net/429rwg1t и в нем используются именно классы. С атрибутом disabled этот трюк не пройдет.
Вот живой пример, с которым я борюсь: novi.co/test/bionica
Там, если наверху нажать на кнопку «Заказать обратный звонок» во всплывающем окне будет форма. В ней, если нажать на button при незаполненных полях, они подкрасятся красным.
А борюсь я с формой которая не в окне, а просто на странице. Там если нажать на кнопку всплывает окошко с сообщением об успешной отправке, даже при незаполненных полях.
Вот я и хочу, чтобы и поля подкрашивались в красный цвет, и сообщение об отправке всплывало, но только при заполненной форме.
Осложняется это тем, что за это отвечают разные скрипты.

Rad1calDreamer @Rad1calDreamer
@Petroveg: можно наверно чуть сократить с помощью hasClass()

@Romeo_viruS: вы точно уверены, что вот это:
.is(‘.test’)
длинней, чем
hasClass(‘test’)
Со счётом всё нормально?)
Остановить выполнение JS скрипта из фукнции
При срабатывание условия в функции, нужно остановить работу скрипта вне функции. Return false останавливает работу самой функции, а всё, что вне, продолжает работу UPDATE 1: При такой остановке скрипта, проверка фукнции идёт 1 раз. Как при каждом вызове события делать проверку и уже дальше либо останавливать дальнейший код, либо пропускать
jQuery(document).ready(function($) < function Fukntion() < if (. ) < return false; >else < return true; >if (!Fukntion()) < return; >$('#Top select').on('change', function() < Fukntion(); >Какой либо код дальше >
Отслеживать
задан 23 апр 2018 в 19:52
666 6 6 серебряных знаков 23 23 бронзовых знака
– user176262
23 апр 2018 в 20:42
перенести «дальнейший код» внутрь обработчика change
– user176262
23 апр 2018 в 20:49
код в строчке Какой либо код дальше выполняется раньше чем обработчик change , поэтому его никак нельзя будет прервать из обработчика.
Курсы javascript
Собственно сам вопрос, существует ли в JavaScript функция которая остановит дальнейшее выполнение скрипта, что то вроде exit в php, или как такое можно реализовать?
22.08.2008, 09:32
Регистрация: 25.07.2008
Сообщений: 1,271
window.stop()
22.08.2008, 14:31
Регистрация: 21.02.2008
Сообщений: 1,250
ZoNT,
На сколько я знаю, window.stop() останавливает загрузку окна, а не выполняемый скрипт.
22.08.2008, 14:38
Регистрация: 25.07.2008
Сообщений: 1,271
вполне может быть — никогда не пользовался.
23.08.2008, 21:37
Infocatcher
Сообщений: n/a
Если нужна возможность продолжения, то смотреть в сторону
window.alert(msg);
window.confirm(msg);
window.prompt(msg, defaultValue);
Впрочем, «window.» можно опускать.
24.08.2008, 04:04
Новичок на форуме
Регистрация: 22.08.2008
Сообщений: 2
Спасибо ребят, то что надо
01.05.2009, 18:08
Регистрация: 16.07.2008
Сообщений: 207
подниму темку.
Сейчас потребовалось тоже остановить выполнение скрипта в определенном месте.
но когда пишу throw «stop», firebug ругается «uncaught exception: stop»
как бы так остановить чтоб и жук не ругался ?
01.05.2009, 18:23
Регистрация: 04.04.2008
Сообщений: 6,245
throw new Error("stop");
вот так насколько я помню правильно бросать исключения
только теперь фаербаг все равно ругается)
throw new Error("stop");
НО!
если обернуть исключение в блок try-catch, на что он и расчитан, то соответсвенно никакой ошибки в фаербаге не выдается
ни при одном из двух вариантов
try < throw "dsf"; //throw new Error("dsf"); >catch(e)
оберните весь глобальный скрипт в исключение, и все будет норм
01.05.2009, 18:31
Регистрация: 16.07.2008
Сообщений: 207
в том то и дело что try-catch у меня ловит throw с ошибками, выдает пользователю сообщение и останавливает скрипт.
Типа такого:
try < // код if(Бог есть == true) throw "верующий"; >catch(e) < alert(e); throw "stop"; // скрипт дальше не должен выполняться. >
а после алерта скрипт продолжит выполняться
01.05.2009, 18:42
Регистрация: 04.04.2008
Сообщений: 6,245
try < try < // код if(Бог есть == true) throw "верующий"; >catch(e) < alert(e); throw "stop"; // скрипт дальше не должен выполняться. >//этот блок уже не выполнится >catch(e)<>