Плагин jQuery Cyclection должен перемещаться на следующий слайд на спине, если группа проверки недействительна

StackOverflow https://stackoverflow.com/questions/4606152

Вопрос

Я использую плагин JQuery Cycle Cycle (с атрибутами, определенными в отдельном сайте широкого пользовательского файла JS), чтобы цитироваться между двумя страницами (разделенными таблицами) формы. Каждая страница имеет свою собственную группу проверки для контроля на этой странице. Первая страница имеет кнопку «Далее», которая при нажатии на нажатие вручную настроен валидацию страницы для первой группы проверки. Если он не удается, чтобы пользователь отображался, чтобы пользователь исправил информацию. Если проверка добивается успеха, называется циклом следующей командой.

$('#request-information').cycle('next');

На втором странице элементы управления сгруппированы во второй группе проверки с кнопкой отправки. Когда кнопка «Отправка» нажат, проверка на стороне сервера срабатывается, и если она не удается перезагрузка страницы на обратную панель. Все это работает, за исключением случаев, если вторая страница не удается, я хочу остаться на второй странице. Поэтому, если веб-страница перезагружается, потому что вторая страница формы не удалась проверить, мне необходимо либо установить запуск скольжения на вторую страницу формы, либо, если это невозможно, по крайней мере, запускать следующую команду цикла.

Похоже, я просто могу просто установить презнание на вторую страницу формы, потому что это перезаписывает другие определенные атрибуты функции цикла, которые устанавливаются в отдельном файле JS.

Итак, кто-нибудь знает, как продвинуться к второму слайду на загрузке страницы обратной панели на основе того, не удалась ли вторых валидационных групп, когда нажала кнопка «Отправить»? Или я должен сделать что-то другое, используя просмотр и что-то?

Извините, это давно взвешенный вопрос. Надеюсь, это ясно и не сбивает с толку. Спасибо

Это было полезно?

Решение

Если вы знаете, что вам нужно перейти ко второму слайду, когда ваша страница загружается, тогда вы можете сделать что-то вроде этого:

var init = { startingSlide: 1 }; // i.e. second slide, the indices are zero-based
$('whatever').cycle($.extend(init, the_name_of_your_global_default_options));

Вы бы просто должны были организовать init быть пустым объектом, за исключением случаев, когда вам нужно установить startingSlide. Отказ Если .cycle() Будет где-то за пределами вашей страницы, то вы можете зарезервировать переменную для вариантов определения страниц и $.extend() что где .cycle() называется. Например, на вашей странице вы можете сделать что-то вроде этого:

app_name_space.page_cycle_opts = { startingSlide: 1 };

А затем выход в файле JavaScript, который является обязательным велосипедом:

app_name_space.page_cycle_opts = app_name_space.page_cycle_opts || { };
$('whatever').cycle($.extend(app_name_space.page_cycle_opts, default_options));

я использую app_name_space В качестве заполнителя для любого глобального пространства имен вашего приложения уже используют, чтобы избежать конфликтов имен. Если вам пришлось разобраться с несколькими экземплярами цикла на одной странице, то вы хотите индексировать page_cycle_opts По указанию элемента, например:

app_name_space.page_cycle_opts['X'] = { startingSlide: 1 };

а затем выход в другое место:

$('whatever').each(function() {
    $(this).cycle($.extend(
        app_name_space.page_cycle_opts[this.id] || { },
        default_options
    ));
});

Основная идея состоит в том, чтобы рассмотреть параметры глобальной конфигурации в качестве набора по умолчанию, а затем разрешать переопределению специфики страницы через хорошо определенный и документированный механизм.

Длинный заверенный ответ на длительный взволнованный вопрос. Надеюсь, это ясно и не сбивает с толку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top