Перейти к содержимому

Как остановить скрипт js

  • автор:

Остановить выполнение скрипта | JavaScript

Прервать работу скрипта или в чём разница между return; return false; return true;

Если не нужно знать достигла ли функция положительного исхода, то достаточно указать return без значения:

   

Если дальнейшее выполнение скрипта должно прерываться (или развиваться по другому пути) при достижении положительного исхода рассматриваемой функции, то return присваивается значение, чаще false или true :

   

Как использовать return, когда функция вызывает саму себя (рекурсия)

  

Возврат массива из функции

  

Как остановить выполнение js-скрипта?

Вот, как это записать на JS?
Подскажите, пожалуйста.

P. S. Да, совсем забыл. Класс «disabled» подставляется автоматически, совсем другим скриптом.

  • Вопрос задан более трёх лет назад
  • 42178 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 3

Petroveg

Миром правят маленькие с#@&ки

if (проверяем состояние кнопки) < // Запускаем что-то >

Ответ написан более трёх лет назад
Нравится 5 11 комментариев

Novitsky

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

Petroveg

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

Novitsky

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

Petroveg

Вам следует знать, что форму отправить может не только клик на кнопке. Попытка остановить отправку формы отслеживанием клика — признак новичка.

Самый простой и верный путь — правильно использовать атрибуты элементов форм 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

Владимир Новицкий @Novitsky Автор вопроса

@Petroveg: Спасибо большое! Буду разбираться и думать.
Насчет классов. Они нужны только для того, чтобы при нажатии на кнопку, при незаполненных полях, рамка у них становилась красная. Для этого есть скрипт: jsfiddle.net/429rwg1t и в нем используются именно классы. С атрибутом disabled этот трюк не пройдет.

Вот живой пример, с которым я борюсь: novi.co/test/bionica
Там, если наверху нажать на кнопку «Заказать обратный звонок» во всплывающем окне будет форма. В ней, если нажать на button при незаполненных полях, они подкрасятся красным.
А борюсь я с формой которая не в окне, а просто на странице. Там если нажать на кнопку всплывает окошко с сообщением об успешной отправке, даже при незаполненных полях.
Вот я и хочу, чтобы и поля подкрашивались в красный цвет, и сообщение об отправке всплывало, но только при заполненной форме.
Осложняется это тем, что за это отвечают разные скрипты.

Rad1calDreamer

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

Petroveg

@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)<>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *