2016-08-30 31 views
0

私はAJAXで検証されたフォームを持っています。問題はAJAXが応答を返した後に同じフォームを同じページに提出する必要があります。 $('#bigform').submit()を使用しているため、同じページにあるPHPにフォームを送信することはできません。AJAXが成功した後に同じフォームを別のページに送信

$(document).ready(function() { 
    $('#bigform').submit(function(event) { 
     var captcha_checks = $('#password_again').val(); 
     $(this).validate(); 
     if (!$(this).valid()) 
      return false; 

     $.ajax({ 
      type: 'post', 
      url: 'http://trigma.com/mobile-app-development/verify_captcha.php', 
      data: { captcha_checks: captcha_checks }, 
      dataType: 'html', 
      success: function(data) { 
       if (data == 1) { 
        $('#bigform').submit(); 
       } 
       if (data == 2) { 
        $('#captcha_error').text("Invalid Captcha! Please fill captcha carefully"); 
       } 
      } 
     }); 
     event.preventDefault(); 
    }); 
}); 
+0

を。 ().submit(); ' –

+0

フォームを一度送信してからもう一度やり直してください。最初に検証するサーバー側のロジックを変更してから、1回の呼び出しで自動的に進んでください。 –

+0

もう一度フォームにあなたのcaptchaコードを提出すると検証の問題が発生します。 – Dharmendra

答えて

2

あなたはこのようなブール変数を追加することができます再び提出する前に、イベントハンドラを削除してみてください...成功の目的球に... `$(「#のbigform」)オフ

$(document).ready(function() { 
    var first = true; 
     $('#bigform').submit(function(event) { 

     if(first){ 
      var captcha_checks = $('#password_again').val(); 
      $(this).validate(); 
      if (!$(this).valid()) 
       return false; 

      $.ajax({ 
       type: 'post', 
       url: 'http://trigma.com/mobile-app-development/verify_captcha.php', 
       data: { captcha_checks: captcha_checks }, 
       dataType: 'html', 
       success: function(data) { 
        if (data == 1) { 
         first = false; 
         $('#bigform').submit(); 
        } 
        if (data == 2) { 
         $('#captcha_error').text("Invalid Captcha! Please fill captcha carefully"); 
        } 
       } 
      }); 
      } 
      else 
      { 
      $('#bigform').submit(); 
      } 
      event.preventDefault(); 
     }); 
    });  
+0

私はこれを試し、あなたを更新します。それは私が探している答えのようです。 – prabhjot

1

これが行うには奇妙なことですが、あなたは次のように、別の関数を使用する必要がある場合:ではなくボタンをSUBMITためclickイベントハンドラを設定しないのはなぜ

$(document).ready(function(){ 
    function onSubmit(theElement){ 
     var captcha_checks = $('#password_again').val(); 
     theElement.validate(); 
     if (!theElement.valid()) return false; 
     $.ajax({ 
      type: 'post', 
      url: 'http://trigma.com/mobile-app-development/verify_captcha.php', 
      data: {captcha_checks:captcha_checks}, 
      dataType: 'html', 
      success: function(data) { 
      if(data == 1){ 
       onSubmit(theElement); 
      } 
      if(data == 2){ 
       $('#captcha_error').text("Invalid Captcha! Please fill captcha carefully"); 
      } 
      } 
     }); 
     event.preventDefault(); 
    } 
    $('#bigform').submit(function(event){ 
     onSubmit($(this)); 
    }); 
    }); 
</script> 
0

$('#submit-btn').click(function(event){ 
    event.preventDefault(); 

    var form = $(this).closest('form'); 
    $(form).validate(); 
    if (!$(form).valid()) 
     return false; 

    //...your AJAX call... 
     if(data == 1){ 
      form.submit(); 
     } 
    //... 

}); 
+0

私は試しましたが、これらのjquery valdiationsは動作しません – prabhjot

関連する問題