Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
11 / 11 / 1
Регистрация: 18.03.2014
Сообщений: 69
1

Как сгруппировать элементы в пошаговой форме

01.10.2018, 12:49. Показов 634. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Есть задача - переработать форму так, чтобы при выборе категории вопроса далее шел список из шагов конкретно по ней, и в конце отправка. В настоящий момент сделано упрощенно - в каждой категории внутри только 1 пункт и далее общие для всех остальных. Ниже пример реализации. Благодарю за любую помощь.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<form id="form-step" method="post" action="/" enctype="multipart/form-data">
                    <div id="step2" class="section">
                        <h4 class="big">1. Выберите категорию спора</h4>
                        <div class="line"></div>
                        <div class="wrp">
                            <div class="form-check">
                                <label class="form-check-label">
                                    <input type="radio" name="category" data-idx="1" class="form-check-input" value="Лишение водительских прав" required checked>Лишение водительских прав
                                </label>
                            </div>
                            <div class="form-check">
                                <label class="form-check-label">
                                    <input type="radio" name="category" data-idx="2" class="form-check-input" value="Споры со страховой" required>Споры со страховой
                                </label>
                            </div>
                            <div class="form-check">
                                <label class="form-check-label">
                                    <input type="radio" name="category" data-idx="3" class="form-check-input" value="Виновность в ДТП, пострадавшие, материальный ущерб" required>Виновность в ДТП, пострадавшие, материальный ущерб
                                </label>
                            </div>
                            <div class="form-check">
                                <label class="form-check-label">
                                    <input type="radio" name="category" data-idx="4" class="form-check-input" value="Споры о покупке (с дилерами, автосалонами, бывшими владельцами)" required>Споры о покупке (с дилерами, автосалонами, бывшими владельцами)
                                </label>
                            </div>
                            <div class="form-check">
                                <label class="form-check-label">
                                    <input type="radio" name="category" data-idx="5" class="form-check-input" value="Оспаривание административного постановления" required>Оспаривание административного постановления
                                </label>
                            </div>
                            <div class="form-check">
                                <label class="form-check-label">
                                    <input type="radio" name="category" data-idx="6" class="form-check-input" value="Возврат прав досрочно" required>Возврат прав досрочно
                                </label>
                            </div>
                            <div class="form-check">
                                <label class="form-check-label">
                                    <input type="radio" name="category" data-step="step4" class="form-check-input" value="Другое" required>Другое
                                </label>
                            </div>
                            <div class="action">
                                <button class="step uk-button uk-button-primary" data-step="step3" data-filter="category">Далее</button>
                            </div>
                        </div>
                    </div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<script>
    $(document).ready(function() {
        var idx = 0;
        var back = 'step3';
 
         $('.step').on("click",function(e){
            e.preventDefault();
            step = $(this).data("step");
            filter = $(this).data("filter");
 
            $('.section').addClass("d-none");
            $('#'+step).removeClass("d-none");
 
            if(filter != undefined){
                idx = $('input[name="'+filter+'"]:checked').data("idx");
 
                if(idx != undefined){
                    $('#'+filter+idx+' .form-check:first-child input').click();
                    $('#'+filter+idx).removeClass("d-none");
                    back = 'step3';
                }else{
                    step = $('input[name="'+filter+'"]:checked').data("step");
                    $('.section').addClass("d-none");
                    $('#'+step).removeClass("d-none");
                    back = 'step2';
                }
            }
            if(step == 'step2'){
                idx = 0;
            }       
        });
 
        $('.back').on("click",function(e){
            e.preventDefault();
            $('.section').addClass("d-none");
            $('#'+back).removeClass("d-none");
 
            if(idx){
                $('#category'+idx).removeClass("d-none");
            }
        });
 
        $('input[name="fio"]').keyup(function(e){       
            if($(this).val().length >= 3){
                $('button[data-step="step8"]').removeAttr('disabled');
            }else{
                $('button[data-step="step8"]').attr('disabled','true');
            }
        });
        $('input[name="phone"]').keyup(function(e){     
            if($(this).val().length >= 16){
                $('button[type="submit"]').removeAttr('disabled');
            }else{
                $('button[type="submit"]').attr('disabled','true');
            }
        });
    });
</script>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.10.2018, 12:49
Ответы с готовыми решениями:

Как проверить заполненность полей в пошаговой форме?
Сделал пошаговую форму с проверкой на заполнение, но не получается переключаться между шагами. В...

Как после анимации сгруппировать элементы и предоставить им еще одну анимацию?
Есть несколько продуктов (изображений) на полках магазина. Произвольно выбирает их, и они &quot;летят&quot; в...

Сгруппировать элементы массива
Сгруппировать положительные элементы в начале, а отрицательные в конце массива без...

Сгруппировать равные элементы массива
Прошу помощи с решением задачи: Задан массив чисел a1,...,a50. Предполагается, что в нем есть...

0
01.10.2018, 12:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.10.2018, 12:49
Помогаю со студенческими работами здесь

Сгруппировать одинаковые элементы массива
Здравствуйте, подскажите пожалуйста,например,мы вводим массив 1,2,3,4,5,6,5,1 а вывод был...

Сгруппировать повторяющиеся соседние элементы последовательности
Задана последовательность целых чисел. Требуется сгруппировать повторяющиеся соседние элементы, как...

Сгруппировать все элементы в подсписках до конца попарно
Используя рекурсию в Common Lisp делать следующие преобразования: получая в качестве исходного...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru