Как приостановить отправку формы, для 1 последней проверки, в самом конце и после этого выпуска / запуска / продолжения отправки? - PullRequest
0 голосов
/ 06 апреля 2011

У меня есть page1.php, и у меня есть fly.php.page1.php - это простая (обычная) страница формы, где люди помещают информацию, когда пользователь отправляет форму.

  • через ajax он загружает шаблон капчи и просит проверить на лету (пока все в порядке).
  • После проверки onFly, я хочу разрешить это .submit () продолжить

Вопрос: How can i after .submit() pause for validatio n этой капчи и после успешной проверки возобновить отправку формы (которая приостановлена)?

Пример:

Часть 1: page1.php

$(document).ready(function()
{
 $('.callmeback').submit(function()
 {
    $.ajax({
        type    : "GET",
        url     : "/include/class/fly.php",
        data    : "a=b",
        async   : false,
        beforeSend: function()
        {
            $(document.body).find('.blackwindow').remove();
            $(document.body).find('.nospam').remove();  
        },  
        complete: function()
        {
        },      
        success : function(msg)
        {
           $(document.body).append(msg);
           $('.blackwindow').css({
              'opacity':'0.90'
           });

           $('.nospam').find('input[type="button"]').live("click", function()
           {
              // final validation
              var security= $('.nospam').find('#security').val();
              var random  = $('.nospam').find('#random').val();

                  if (random!=security)
              { 
            alert ('Invalid captcha.');
            return false;

               } else  {
            // Basically its second time? and return true?                      
               }

           });

        }

    });

    //return false;
 });

});

<form method=post action=thanks.php class="callmeback">
<input type=text value=100.00 name=amount />
<input type=submit value=submit name=submit />
</form>

Часть 2: fly.php

<? require_once 'obj.php';?>
.blackwindow {
        position:fixed;
        top:0px;
        left:0px;
        width:100%;
        height:100%;
        z-index:1000;

        background-color:#000000;
}

.nospam {
        position:fixed;
        top:30%;
        left:30%;
        padding:12px;
        border:solid 3px #686868;
        background-color:#ffffff;
        z-index:1001;
}
<div class="blackwindow"></div>
<div class="nospam">
<div>
<?
$value = obj::getRandom();                                          
echo '<img src="include/class/return_img.php?number=' . $value . '" />';
echo "<input type='hidden' id='random' name='random' value='$value' />";
?>     
<div>
*Please enter the above code below, to verify this request <br/>
<input type="text" class="textbox" id="security" name="security" />
</div>
</div>
<div>
<input type=button name=mybutton value="Verify" />
</div>
</div>

Продолжение (чтение корректуры):

$(document).ready(function()
{
 $('.callmeback').find('input[type="button"]').live("click", function()
 {
    $.ajax({
        type    : "GET",
        url     : "/include/class/fly.php",
        data    : "a=b",
        async   : false,
        beforeSend: function()
        {
            $(document.body).find('.blackwindow').remove();
            $(document.body).find('.nospam').remove();  
        },  
        complete: function()
        {
        },      
        success : function(msg)
        {
           $(document.body).append(msg);
           $('.blackwindow').css({
              'opacity':'0.90'
           });

           $('.nospam').find('input[type="button"]').live("click", function()
           {
              // final validation
              var security= $('.nospam').find('#security').val();
              var random  = $('.nospam').find('#random').val();

                  if (random!=security)
              { 
            alert ('Invalid captcha.');
            return false;

               } else  {
            $('.callmeback').submit();                      
               }

           });

        }

    });

    //return false;
 });

});

1 Ответ

4 голосов
/ 06 апреля 2011

Самый простой способ - сделать кнопку «Отправить» на самом деле не кнопкой <input type='submit'>, а просто стандартной button.Если проверка прошла успешно, вы можете вручную отправить форум, используя $('form').submit() или что-то подобное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...