2016-08-30 1 views
0

AJAX를 통해 유효성이 검사되는 양식이 있으며 문제는 AJax가 응답 1을 보낸 후에 동일한 양식을 제출해야합니다. $('#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

오프 ('#의 bigform') '... 성공 연료 소모량에 ... 다시 제출하기 전에 $를 이벤트 처리기를 제거하려고() .submit(); ' –

+0

양식을 한 번 제출 한 다음 다시 유효한 것으로 다시 작성하는 것이 약간 중복 된 것처럼 보입니다. 먼저 유효성을 검사하기 위해 서버 측 로직을 변경 한 다음 한 번의 호출로 자동으로 진행하십시오. –

+0

다시 captcha 코드를 제출하면 유효성 검사 문제가 발생합니다. – Dharmendra

답변

2

는이 같은 부울 변수를 추가 할 수 있습니다.

$(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

이 할 수있는 이상한 일이지만, 당신은 같은 별도의 기능을 사용해야하는 경우 :

$(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

을 왜하지 에 대한 click 이벤트 핸들러를 설정하는 대신 버튼을 제출?

$('#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

관련 문제