Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 13.01.2017, 17:47   #1
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 261
Репутация: 15
Счастье Страница копирует сама себя

Подскажите пожалуйста, почему после нажатия на кнопку "Подтвердить", появляется еще одна копия страницы?

На видео более понятно, о чем я говорю:

https://youtu.be/EtqSU8nvDHM
Женя32 вне форума   Ответить с цитированием
Старый 13.01.2017, 17:56   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 11,078
Репутация: 1862

icq: 216409213
По умолчанию

1. Не заменяете старый див, а добавляете в него при AJAX ответе.
2. Не правильно даете переадресацию с этой страницы
3. ...

Передаю слово следующему телепатору...
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 13.01.2017, 21:18   #3
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 261
Репутация: 15
Счастье

Код одной страницы:
Проверка и отправка первой формы:

PHP код:
       $(document).ready(function () {

                         $(
'#form_reg').validate({

                
//Правила для проверки

                
rules: {
                    
"reg_login": {
                       
minlength5,
                       
maxlength15
                },
...
            },
                
//Текста предупреждений

                
messages: {

                    
"reg_login": {
                        
required"Укажите Логин!",
            
minlength"От 5 до 15 символов!",
                        
maxlength"От 5 до 15 символов!"
                      
},
....
        },


            
//Обработчик и отправка данных

              
submitHandler: function(form) {
                    $(
form).ajaxSubmit({

                        
success: function (data) {
                            
                            if (
data == "true") {
                
                               $(
"#block-form-registration").fadeOut(300, function () {

                                    $(
"#form_submit").hide();
                                    
//$("#reg_message").addClass("reg_message_good").fadeIn(400).html("Вы успешьно зарегистровались!");
                                    
document.getElementById('block-sms').style.display 'block';
            
                                    $(
'#button-send-code')[0].type 'submit'value='Получить новый код';
 
                                    
document.getElementById('button-send-code').click();
                                    $(
'#button-send-code')[0].type 'hidden'value=''
                                   
                                });
                            }else
                               {
                                  $(
"#reg_message").addClass("reg_message_error").fadeIn(400).html(data);
                               }
                        }

                    });
.... 
Если из первой формы данные отправлены успешно, то первая форма скрывается, и открывается вторая форма:
PHP код:
     $(document).ready(function () {
               

    $(
'#form_act_sms').validate({
                
//Правила для проверки

                
rules: {
                          
"code":{ 
                            
required:true,                
                            
maxlength:25
                     
},                
                },
                
//Текста предупреждений

                
messages: {                    
                       
"code": { 
                          
required:"",
                          
maxlength""
                
},
             },


            
//Обработчик и отправка данных

              
submitHandler: function(form) {
                    $(
form).ajaxSubmit({

                        
success: function (data) {
                            
                            if (
data == "true") {
                
                               $(
"#block-sms").fadeOut(300, function () {

                                    
//$("#reg_message").addClass("reg_message_good").fadeIn(400).html("Вы успешьно зарегистровались!");
                                    
document.getElementsByClassName('sms').style.display 'block'
                                    $(
"#form_submit").hide();
                                });
                            }else
                               {
                                  $(
"#message_reg_sms").addClass("reg_message_error").fadeIn(400).html(data);
                               }
                        }

                    });

                }
                                                               
            });

        }); 
Код HTML:
<div id="block-content">

<h2 class="h2-title">Регистрация</h2>
<form method="post" id="form_reg" action="reg/hendller_reg.php">
<p id="reg_message"></p>
<div id="block-form-registration">
<ul id="form-registration">

<li>
<label>Логин</label>
<span class="star">*</span>
<input type="text" name="reg_login" id="reg_login" />
</li>
....
</ul>
</div>

<p align="right"><input type="submit" name="reg_submit" id="form_submit" value="Регистрация"/> </p>

</form>	
 

<div id="block-sms" class="act-sms">     
     <form method="post" id="form_act_sms" action="reg/smsc_api.php">
       <ul id="input-sms-pass">
        <h3>Подтверждение регистрации</h3>
        <h4>На указанный Вами номер выслан код подтверждения </h4>
        <p id="numbe-phone"> Номер телефона: </p>
        <li><input type="hidden" id="reg_login_act" name="reg_login_act" value="" /></li>
        <li><input name="phone" id="phone" readonly value="+"> </li>
        <p id="sms-code">Код подтверждения: </p>
       <li><input name="code" id="code" maxlength="6"> </li>
       <li><input type="hidden" id="button-send-code" name="sendsms"  /></li>
       <p id="message_reg_sms"></p>
       <li><input type="submit" id="submit-reg-confi" name="ok" value="Подтвердить" /></li>
       </ul>
       </form>
   </div>




</div> <!--block-content - end-->
Женя32 вне форума   Ответить с цитированием
Старый 13.01.2017, 22:34   #4
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 261
Репутация: 15
По умолчанию

Все, разобрался.... кнопку отправки нельзя помещать в ul.....
Женя32 вне форума   Ответить с цитированием
Старый 06.08.2017, 20:55   #5
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 261
Репутация: 15
По умолчанию

Здравствуйте!
С ново столкнулся с этой проблемой........

Значит так...
Имеется div который содержит объект-кнопку <p align="right" id="button-remind"><a>Готово</a></p>, которая обрабатывается js, и прикол в том, что при клике по этому объекту-кнопке, все содержимое страницы клонируется в div, где находиться объект-кнопка "Готово".
Подскажите пожалуйста, из-за чего так происходит?

<div id="block-remind">
<h3>Востановление<br /> пароля </h3>
<p id="message-remind" class="message-remid-success"></p>
<center><input type="text" id="remind-email" placeholder="Ваш E-mail" /></center>
<p align="right" id="button-remind"><a>Готово</a></p>
<p align="right" class="auth-loading"><img src="img/loading.gif" /></p>
<p id="prev-auth">Назад</p>
</div>

$('#button-remind').click(function(){

var recall_email = $("#remind-email").val();

if (recall_email == "" || recall_email.length > 20)
{
$("#remind-email").css("borderColor","#FDB6B6" );
}else
{
$("#remind-email").css("borderColor","#DBDBDB" );

$('#button-remind').hide();
$('.auth-loading').show();

$.ajax({
type: "POST",
url: "",
data: "email="+recall_email,
dataType: "html",
cache: false,
success: function(data){

if (data == 'yes')
{
$(".auth-loading").hide();
$('#button-remind').show();
$('#message-remid').attr("class","message-remid-success").html("На Ваш e-mail выслан пароль.").slideDown(400);
setTimeout("$('#message-remind').html('').hide(),$('#block-remind').hide(),$('#input-email-pass'),show()",3000);
}else
{
$(".auth-loading").hide();
$('#button-remind').show();
$('#message-remind').attr("class","message-remid-error").html(data).slideDown(400);
}
}

});
}
});

Чтобы лучше донести информацию, прикрепляю видео:
https://youtu.be/hlkODr7vkSo
Женя32 вне форума   Ответить с цитированием
Старый 17.08.2017, 18:46   #6
obivan88
Пользователь
 
Регистрация: 17.08.2017
Сообщений: 16
Репутация: 14
По умолчанию

Возможно ошибаюсь, но:
1) посмотрите на условие
Код:

if (data == "true")

или
Код:

if (data == 'yes')

у Вас скорее всего условие постоянно попадает в else так как data не будет никогда ни "true" ни 'yes', проверка наличия данных не так проверяеться (условие if (data) {...})

2)
Код:

$("#message_reg_sms").addClass("reg_message_error").fadeIn(400).html(data)

получаеться в код элемента #message_reg_sms Вы помещаете все данные приходящие из запроса (.html(data)) или я что-то не так понял?
obivan88 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос по таблице связанной сама на себя superpsih Microsoft Office Access 6 18.03.2016 17:48
таблица вложенная сама в себя Kate jstr Microsoft Office Access 6 23.08.2015 11:55
Нокиа сама себя закапывает hxt Свободное общение 1 22.01.2013 18:17
Ошибка : форма использует сама себя VITEBchANIN Общие вопросы Delphi 26 18.06.2010 02:49
Программа, выводящая сама себя Gorychev Общие вопросы Delphi 45 31.01.2010 03:45


14:53.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru