2015-01-28 2 views
-1

후 나는이사용 안 함 "제출"버튼을 양식 유효성 검사

@using (Html.BeginForm("action", "controller", FormMethod.Post, new { id = "_identity" })) 
{ 
// element here 

<input class="buttonblue" type="submit" value="Save" id="Submit1" /> 
} 

같은 형태로 그것은 Model에 의해 확인되고있다.

괜찮습니다. 그리고 지금은 유효성 검사 후 컨트롤러 동작에서이 요청에 도달했는지 탐지하려고합니다.

사실 컨트롤러에서 요청에 도달하면 submit button을 비활성화하고 싶습니다.

다음과 같이 시도해 보았습니다. 그러나 이것이 올바르지 않다고 생각합니다.

$('#_identity').submit(function() { 
    $("#Submit1").val("Saving..."); 
    $("#Submit1").attr('disabled', 'disabled'); 
}); 

이 요청은 컨트롤러에 도달하기 전에 유효성 검사를 받기 전에 호출됩니다.

폼이 유효성이 검사되고 요청이 컨트롤러에 도달하면 사용자가 제출 버튼을 다시 누르지 못하는 것이 간단합니다.

+2

무엇 포인트가 될 것입니다 발견 사용하고 계십니까? - 양식을 컨트롤러에 제출하므로 버튼을 비활성화하더라도 페이지를 남겨 둡니다 (아약스를 사용하여 제출하지 않는 한) 새 페이지가 렌더링됩니다. –

+0

폼의 유효성을 검사하고 요청이 컨트롤러에 도달하면 사용자가 다시 클릭 할 수 없으면 간단한 작업을 원합니다. @StephenMuecke – Manoj

+0

양식을 제출하고 서버에서 유효성을 검사 한 경우 다른 곳으로 리디렉션합니다 (예 : 세부 정보 페이지). 편집 할 수 없을 때 같은보기로 돌아 오는 지점은 무엇입니까? 그리고 이것을하고 싶다면 성공을 나타내는'ViewBag' 속성을 할당 한 다음 자바 스크립트를 사용하여 그것을 읽고 버튼을 비활성화하십시오 (그러나 전혀 이해가되지 않습니다) –

답변

2

.

$('#_identity').submit(function() { 
      if ($(this).valid()) { 
       $(':submit', this).attr('disabled', 'disabled'); 
       $(':submit', this).val('Saving...'); 
      } 
     }); 

나는 Here

0

사용 Ajax.BeginForm이 방법 :

@using (Ajax.BeginForm("action", "controller", new AjaxOptions{ HttpMethod ="Post",OnBegin ="OnBegin",OnSuccess="OnSuccess",OnFailure="OnFailure"},new { id = "_identity" })) 
{ 
// element here 

<input class="buttonblue" type="submit" value="Save" id="Submit1" /> 
} 

및 JS :이 해결 한

<script type="text/javascript"> 

    function OnBegin() { 

     // disable submit button here 
    } 

    function OnSuccess() { 

     // enable submit button here 
    } 

    function OnFailure() { 

     // enable submit button in case of failure 
    } 

</script> 
+0

이 함수는 – Manoj

+0

을 호출하지 않습니다 check jquery-unbotrusive가 포함되어 있는지 여부 –

관련 문제