2017-11-27 1 views
0

MVC를 사용하여 웹 사이트를 devalop합니다.양식 제출을 두 번 방지하는 방법은 무엇입니까?

페이지에서 "새 항목 만들기"를 열기 위해 모달을 사용하고 있습니다. 그래서 나는 "jquery.js"을 참조했습니다.

또한 "@Ajax.ActionLink()"를 사용하여 모달에서 부분 뷰를로드했습니다. 그래서 내가 "jquery.unobtrusive-ajax.min.js이"또한

양식의 유효성을 검사하기 위해 참조 할 필요가, 나는 " jquery.validate *"

그리고 무엇보다, 나는 일부 파일을 참조 그것은 "모달 형식"에서 업로드해야합니다. 마지막으로 "jquery.form.min.js"을 참조하십시오.

이 j- 쿼리 플러그인이 모두 필요합니다. 하지만 문제는 "양식이 두 번 제출됩니다"이며이 플러그인 중 하나를 제거 할 수 없습니다. 어떻게해야합니까? 당신의 js에서

$('#frmEditNewCompany').ajaxForm({ 
    beforeSubmit: function (arr, $form, options) { 
     $(".blockerModal").show(); 
    }, 
    onsubmit: function (event) { 
     $(".blockerModal").show(); 
    }, 
    success: function (data, textStatus, jqXHR) { 
     alert("after submit") 
     if (data.Success == true) { 
      $("#dv-modal-lg").modal("hide"); 
     } 
     eval(data.Script); 
     $(".blockerModal").hide(); 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
     $(".blockerModal").hide(); 
    } 
}); 
+0

양식을 한 번 제출하면 플래그를 true로 설정할 수 있습니다. 두 번째로 그 사실을 확인하면 이벤트를 방지하거나 이벤트 전파를 중지 할 수 있습니다 – geekbro

답변

0

당신의 모든 기능의 상단과 해제 버튼

$(':input[type="submit"]').prop('disabled', true); 

에서 함수를 호출하고 마지막

$(':input[type="submit"]').prop('disabled', false); 

또는 당신을 수 있습니다 : 이 내 양식 아약스 코드 boolean으로 globle var를 사용할 수 있으며 확인하십시오.

if(!flag) 
{ 
flag=true; 
//..do 
} 
else 
{ 
return false; 
} 
관련 문제