0

我正在使用 jQuery 1.7.2 版本,我正在使用 Ajax 提交我的表单

$("input#addPostSubmit").click( function(){
    $.ajax({
            //this is the php file that processes the data and send mail
            url: BASE_URL+"post/ajaxcreate",    
            //POST method is used
            type: "POST",
            //pass the data         
            data: $("#addImage").serialize(),       
            //Do not cache the page
            cache: false,
            //success
            success: function (html) {
                         var obj = jQuery.parseJSON(html);          
                    if(obj.Status == 'Success'){
                        $("#error").removeClass('hide');
                        $("#error").addClass('success');
                        $("#error").html(obj.Message);
                        $.fn.colorbox.resize();
                        setTimeout(function(){$.fn.colorbox.close()},5000);
                        window.parent.location.reload();    
                    }
                    if(obj.Status == 'Fail'){
                        $('.add_post_submit').html('<input type="button" id="addPostSubmit" value="Create" />');
                        $("input#addPostSubmit").removeAttr('disabled');
                        $("#error").removeClass('hide');
                        $("#error").addClass('error');
                        error = obj.Message.split(';');
                        html = '<ul>';
                        for(a=0;a<error.length;a++){
                            html += '<li>'+error[a]+'</li>';
                        }
                        html += '</ul>';    
                        $("#error").html(html);
                        $('html').css({overflow: 'hidden'});
                        $.fn.colorbox.resize();
                    }
            }       
    });
}); 

例如,在表单字段之一上不允许使用 null。当服务器验证表单并返回错误时,我会显示它,当我再次单击该按钮时它不起作用。

它工作正常,但问题是当 ajax 请求完成并且服务器返回任何表单错误然后提交按钮不起作用时。

4

1 回答 1

2

我建议收听文档上的提交事件,而不是单击处理程序。

$(document).on('submit','form',function(e){
  e.preventDefault();
  $.ajax({
          //this is the php file that processes the data and send mail
          url: BASE_URL+"post/ajaxcreate",    
          //POST method is used
          type: "POST",
          //pass the data         
          data: $("#addImage").serialize(),       
          //Do not cache the page
          cache: false,
          //success
          success: function (html) {
              // come code
          }       
  });
}); 
于 2012-09-12T15:12:18.637 回答