2014-09-05 2 views
0

한 번에 여러 제출을 방지하기 위해 양식을 제출 한 후 제출 버튼을 비활성화하는 다음 코드가 있습니다.양식 제출 실패시 제출 버튼 사용

문제는 다음 페이지가로드되지 않거나 사용자 연결에 문제가 발생하면 버튼이 비활성화 된 상태로 유지된다는 것입니다.

사용자가 계속 연결되어 있는지 확인하고 제출하지 못한 경우 버튼을 다시 사용하도록 설정하여 사용자가 양식을 다시 제출할 수 있도록 할 수 있습니까?

이 내 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; 
}); 

답변

0

이 시도, 어떤 이벤트가 없기 때문에 당신이 할 수 많은이없는 버튼의 불을 전체 페이지 요청을 제출로

//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. 
}); 
0

리셋을 트리거합니다. 양식을 아약스 요청으로 제출하는 경우 특정 시간 초과 후 요청을 중단 할 수 있습니다.