启用提交按钮,如果表单提交失败

问题描述:

我有下面的代码来禁用窗体已提交防止多次提交一次后提交按钮。启用提交按钮,如果表单提交失败

的问题是,如果下一个页面加载从来没有的东西或与用户连接的情况,按键则保持禁用。

有没有一种方法来检查,如果用户仍处于连接状态,并再次启用按钮,如果提交失败,使用户可以重试提交表单?

这是我的jQuery代码:

$form.on("submit", function() { 
    var emptyInputs = 0; 

    // calculate empty inputs 

    if (emptyInputs === 0) { 
     var $button = $("#signup button"); 

     $button.prop("disabled", true); 

     //if (/* connection is lost/offline */) { 
     // $button.prop("disabled", false); 
     //} 

     return true; 
    } 

    return false; 
}); 

试试这个,

//callback handler for form submit 
$form.submit(function(e) 
{   
    var postData = $(this).serializeArray(); 
    var formURL = $(this).attr("action"); 
    $.ajax(
    { 
     url : formURL, 
     type: "POST", 
     data : postData, 
     success:function(data, textStatus, jqXHR) 
     { 
      //go to success page 
     }, 
     error: function(jqXHR, textStatus, errorThrown) 
     { 
      // handle fail event your way 
      $("#signup button").removeAttr("disabled");  
     } 
    }); 
    e.preventDefault(); //STOP default action 
    e.unbind(); //unbind. to stop multiple form submit. 
}); 

由于提交按钮触发一个完整的页面请求没有很多可以做,因为没有活动触发重置。如果您提交表单作为ajax请求,您可以在特定超时后中止请求。