簡體   English   中英

在AJAX說成功后,將相同的表單提交到另一頁

[英]Submit same form to another page after the AJAX says sucess

我有一個通過AJAX驗證的表單,問題是在ajax給出響應1它應該將相同的表單提交到同一頁面。 由於我使用了$('#bigform').submit() ,因此不允許我將表單提交給駐留在同一頁面上的PHP。

$(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();
    }); 
});

您可以添加一個布爾變量,如下所示:

 $(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();
        }); 
    });    

這是一件奇怪的事情,但是如果您必須使用單獨的函數,例如:

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

為什么不為SUBMIT按鈕設置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();
        }
    //...

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM