С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 1
Регистрация: 25.10.2016
Сообщений: 83

Не работают методы .hide(); и .show();

18.01.2017, 18:10. Показов 2610. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Почему данные методы не отрабатывают на формах?
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6 highheader2">                
                <form action='#' method="post"  id="regBox">                       
                    <select name="reg" id="regBoxHidden">
                        {foreach $rsReg as $item}
                            <option value="{$item.route}">{$item.name}</option>
                        {/foreach}
                    </select>                        
                </form>   
                <form action='#' method="post" id="userBox" class="hideme">                       
                    <select name="auth"  >
                        <option value="#"></option>
                        {foreach $rsAuth as $item}
                            <option value="{$item.route}" onclick="{$item.action}">{$item.name}</option>
                        {/foreach}
                    </select>                        
                </form>
            </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
function getData(obj_form){
    var hData = {};
    $('input, textarea, select', obj_form).each(function(){
        if(this.name && this.name!==''){
            hData[this.name] = this.value;
            console.log('hData[' +this.name + '] = ' + hData[this.name]);
        }
    });
    return hData;
    
};
 
/**
 * Регистрация нового пользователя
 * 
 */
function registerNewUser(){
    var postData = getData('#registerBox');
    
    $.ajax({
        type: 'POST',
        async: false,
        url: "/user/register/",
        data: postData,
        dataType: 'json',
        success: function(data){
            
            if(data['success']){
                alert(data['message']);
                
                $('#regBox').hide();                
                $('#userBox').show();
                          
            } else {
                alert(data['message']);
            }
        }
    });   
}
 
function logout() {
    console.log('Logout');
    $.ajax({ 
        type: 'POST',
        async: false,
        url: '/user/logout/',
        //dataType: 'json',
        success: function() {
            console.log('user logged out');
            $('#regBox').show(); 
            $('#userBox').hide();
        } 
    }); 
}
Получается до регистрации или регистрации должна быть видна одна форма, соответственно после должна быть видна вторая с личным кабинетом и выходом из аккаунта но этого не происходит. Подскажите почему?

P.S.

Сама функция регистрации работает отлично. Это говорит о том что
JavaScript
1
function registerNewUser()
точно доходит до
JavaScript
1
2
if(data['success']){
                alert(data['message']);
так как высвечивается сообщение о том что регистрация прошла успешно, а вот дальше...

Добавлено через 37 минут
Может ли это быть связано с тем что после успешной регистрации перекидывает на главную страницу?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.01.2017, 18:10
Ответы с готовыми решениями:

.show & .hide
Здравствуйте! Есть 2 div'a. Один, допустим &quot;attack&quot; открыт, а другой - &quot;guard&quot; скрыт стилем &quot;display: none&quot;. Нужно,...

Функция .show hide
Всем привет. Сразу скажу, что в jquery и javascript я не разбираюсь. Дана вот такая кнопка &lt;input type=&quot;button&quot;...

Hide-show с data атрибутами
Здравствуйте,скажите как сделать обычный slideToggle по клику например на аттрибут data-id=&quot;0&quot; ,в одном диве, появлялся блок с...

7
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,814
18.01.2017, 18:27
Tverdislav, Конечно это из-за того, что страница перегружается.

Добавлено через 9 минут
Tverdislav,
Я не вижу, где у вас вызывается функция registerNewUser();
Функция getData лишний велосипед есть готовый метод serialize();
$('#registerBox') это у вас что?
0
1 / 1 / 1
Регистрация: 25.10.2016
Сообщений: 83
18.01.2017, 18:28  [ТС]
sad67man, А как тогда можно реализовать скрытие одной формы и появление другой?
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,814
18.01.2017, 18:30
Tverdislav, Либо делать без перезагрузки страницы, либо переложить эту логику на сервер. Пользователь авторизован - показывать одну форму, иначе другую.

Добавлено через 45 секунд
Tverdislav, Точнее, в любом случае эта логика на сервере должна быть.
0
1 / 1 / 1
Регистрация: 25.10.2016
Сообщений: 83
18.01.2017, 18:30  [ТС]
Цитата Сообщение от sad67man Посмотреть сообщение
$('#registerBox') это у вас что?
это форма регистрации с полями
Цитата Сообщение от sad67man Посмотреть сообщение
Я не вижу, где у вас вызывается функция registerNewUser();
она вызывается по onclick при нажатии на кнопке зарегистрироваться
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,814
18.01.2017, 18:34
Tverdislav, Смотрите. После авторизации я буду ходить по сайту. И по идее мне сразу должна выводиться нужная форма без всяких скриптов. Это делается на стороне сервера. Затем, если нужно будет сделать авторизацию без перезагрузки страницы, используя ajax, то лучше этот кусок с формой просто обновлять. Таким образом в форме с личным кабинетом может быть выводиться к примеру имя пользователя.
0
1 / 1 / 1
Регистрация: 25.10.2016
Сообщений: 83
18.01.2017, 18:37  [ТС]
sad67man, т.е. эти методы можно удалить из js?

Добавлено через 2 минуты
sad67man, кстати я убрал из формы регистрации экшн на главную страницу, т.е. при успешной регистрации я остаюсь на этой же странице, но они всеравно не отрабатывают.
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,814
18.01.2017, 18:46
Tverdislav, Это потому, что у вас страница все равно перегружается, так как кроме аякс запроса форма отправляется и обычным способом, по умолчанию action - это текущая страница, это в случае, если action не указан.
Попробуйте сделать так
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$('#registerBox').submit(function(e){
       
    var postData = $(this).serialize();
    $.ajax({
        type: 'POST',
        url: "/user/register/",
        data: postData,
        dataType: 'json',
        success: function(data){
            
            if(data['success']){
                alert(data['message']);
                
                $('#regBox').hide();                
                $('#userBox').show();
                          
            } else {
                alert(data['message']);
            }
        }
    });   
    return false;
})
Добавлено через 2 минуты
Tverdislav, async: false, крайне не рекомендуется делать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.01.2017, 18:46
Помогаю со студенческими работами здесь

show/hide в зависимости от условия
Последний раз у меня была проблема с выводом чекбоксов в дереве, но я разобралась с помощью in_array. Сейчас вот думаю, как сделать так,...

Show/hide при клике
Начинаю веикать в jquery. Вот какая проблемма: нужно при клике на елемент показать контейнер и добавить к нему класс active. При втором...

Простая задача class hide и id show
как решить подобную задачу? $(blocks).hide(); должен выключать блоки с классом &quot;blocks&quot; после этого $(elem).show(); должен...

Несколько галерей используя Hide/Show
Ребят задача такова: Есть галерея на странице, работает через js по принципу уменьшению масштаба и видимости, требуется создать сверху над...

hide и show в Opere
Помогите пожалуйста, я уже голову сломала. У меня iframe, с ссылкой работающего радио, который мне нужно скрыть и при необходимости...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru