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

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

18.01.2017, 18:10. Показов 2612. Ответов 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,815
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,815
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,815
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,815
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
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru