2013-08-13 1 views
1

질문 : 컨트롤러에 취소 버튼을 게시하면 제출되는 이유는 무엇입니까?방해가되지 않는 아약스 양식 게시 취소 버튼이 표시되지 않도록 하시겠습니까?

아래 양식이 부분보기에서로드되었습니다. 제출은 정상적으로 작동합니다. 내가 고군분투 해 왔던 유일한 이유는 취소가 양식을 기각하지 않는 이유입니다. 클릭 이벤트 캡처와 같은 다양한 작업을 시도했습니다. 가능한 해결책으로 http://jimmylarkin.net/post/2012/05/16/Broken-Validation-on-Cancel-Buttons-With-Unobtrusive-Validation-Ajax.aspx을 보았습니다. 그러나 이것이 이것이 의도 한 문제인지 확신 할 수 없습니다. 의심의 여지가 내 부분에 대한 몇 가지 무지. 그럼 내가 뭘 놓칠까요?

//click event loading the form. 
<script> 
    $(document).ready(function() { 
     $('#editbtn').click(function() { 
      var url = "/Quiz/[email protected]"; 
      $.get(url, function (data) { 
       $('#formdiv').html(data); 
       $("#formdiv").show(); 
      }); 
     }); 
</script> 

//form inside partial view. 
    @using (Ajax.BeginForm("EditQuiz", "Quiz", FormMethod.Post, 
         new AjaxOptions 
         { 
          InsertionMode = InsertionMode.Replace, 
          HttpMethod = "POST", 
          UpdateTargetId = "formdiv" 
         })) 
{ 
     @Html.ValidationSummary(true) 
     @Html.AntiForgeryToken() 
     <div> 
      <fieldset> 
      . 
      .    
      <input type="submit" class = "btn btn-primary" value="Save" /> 
      <button class = "cancel" >Cancel </button> 
      </fieldset> 
     </div> 
    } 

답변

0

취소 버튼이 기본적으로 제출을 유발하는 원인인지 궁금합니다. <button class="cancel">을 Html 도우미로 바꾸어보세요. 방법에 대해 @Html.ActionLink("Cancel", "Index"). 텍스트가 Cancel이고 Index으로 리디렉션되는 링크입니다.

+0

글쎄, 그건 작동하지 않습니다. 물론 ActionLink를 사용하면 원하지 않는 실제로 리디렉션되므로 수행해야합니다. Cancel 다음으로 $ ("# cancelbutton"). ("click", function (event) { $ ("# formdiv ") .hide(); }); 다소 해킹 된 것 같습니다. 정말로 그것이 어떻게 이루어져야 하는가? – Joel

+0

유형을 지정하지 않으면 단추가 기본적으로 type = "submit"이 될 수 있습니다. 버튼에 type = "button"을 지정해보십시오. – ElliotSchmelliot

+0

잘 쓰레기. 그게 내가 찾고있는 것보다 더 많은 것 같다. 나는 버튼에 type 속성을 두지 않았지만 다시 체크 할 것입니다. 나는 "내 부분에는 의심의 여지가 없다는 것은 의심의 여지가 없다."라고 말했습니다. :) Thanks Elliot – Joel

관련 문제