2012-11-10 2 views
0

jQuery와 함께 클라이언트 쪽 유효성 검사와 함께 ASP.Net MVC를 사용하고 있습니다. 나는 버튼과 같이 있습니다 jQuery 유효성 검사, MVC 및 취소 버튼

<input type="submit" name="SubmitButton" value="Add Item" class="cancel" /> 

은 일반적으로 버튼을 새 항목을 목록을 추가하는 POST 호출을 제출합니다. 분명히이 목적을 위해 유효성 검사가 필요하지 않습니다.

문제는 모든 필드의 유효성 검사 오류 메시지가 페이지가 다시로드되기 전에 간단히 표시되었음을 나타냅니다 ().

나는 눈에 거슬리지도 않는 유효성 검사 스크립트가이 문제를 일으키는 지 아니면 jQuery 유효성 검사의 버그인지를 조사했습니다.

아이디어가 있으십니까?


업데이트 :

원하는 상태가입니다 : 버튼을 "취소"로 표시 될 때, 폼이 표시 오류 메시지없이 다시 게시 더 나은 내 질문을 명확히합니다.

현재 상태는입니다. 버튼이 "취소됨"으로 표시되면 양식이 다시 게시되지만 오류 메시지가 표시됩니다 !!

답변

0

제출 유형의 입력을 사용하지 않는 것이 좋습니다. 대신 html 앵커 (링크)를 사용하거나 MVC에서 Html.ActionLink를 사용하여 페이지를 다시로드하거나 다른 곳으로 리디렉션하십시오.
비슷한 질문을 여기에 게시 : Cancel button in form

UPDATE 1 - @ sam360 의견에 따라

당신은 취소 버튼 요청을 처리해야하는 액션 메소드에 MultiButtonAtribute를 넣어 시도 할 수 있습니다

:

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)] 
public class MultiButtonAttribute : ActionNameSelectorAttribute 
{ 
    public MultiButtonAttribute(string matchFormKey) : this(matchFormKey, null) { 
    } 

    public MultiButtonAttribute(string matchFormKey, string matchFormValue) { 
     this.MatchFormKey = matchFormKey; 
     this.MatchFormValue = matchFormValue; 
    } 

    public string MatchFormKey { get; set; } 
    public string MatchFormValue { get; set; } 

    public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo) 
    { 
     string value = controllerContext.HttpContext.Request[MatchFormKey]; 
     return value != null && (value == MatchFormValue || MatchFormValue == null); 
    } 
} 

을 버튼의 이름 ("cancel")이 요청에서 일치하면, 마샬 된 취소 조치가 요청을 처리합니다.

<input type="submit" name="cancel" value="Remove Item" class="cancel" /> 

을하지만 잘 이해하는 경우 :

[HttpPost] 
[MultiButton("cancel")] 
public ActionResult CancelAction(MyModel model) 
{ 
// ... update the model (e.g. remove the last item from list and return the view with updated model 
} 

그리고

는 형태로, 당신은 것입니다. 어떤 양식에서 입력 내용을 동적으로 추가/삭제하려고합니다. 일부 서버 요청을 저장하기 위해 javascript 또는 jQuery 함수를 사용하여 클라이언트 쪽을 고려해야합니다 (자바 스크립트를 사용하지 않고 클라이언트를 지원하려는 경우 옵션이 아닐 수도 있습니다).

+0

제 경우에는 다른 페이지로 리디렉션하고 싶지 않습니다. 페이지에 항목 목록이 있으며 사용자가 HTTP POST 작업을 수행하고 목록에 새 항목을 추가 할 수있는 기능이 있습니다 . 참석자가 참석자를 데려 올 수있는 등록 양식을 상상해보십시오. 참석자는 게스트 정보를 추가/제거/업데이트하고 최종 목록을 모두 제출해야합니다. – sam360

+0

귀하의 코멘트 주셔서 감사하지만 이것은 내가 정말로 무엇을 찾고있는 것이 아닙니다. 제출 단추가 "취소"로 표시되면 jQuery 유효성 검사 플러그인을 구성하여 유효성 검증 오류를 발생시키지 않는 방법을 찾고 있습니다. 원하는 상태는 버튼이 "취소"로 표시된 경우 오류 메시지없이 게시 할 양식입니다. 현재 상태는 버튼이 "취소"로 표시되면 양식이 다시 게시되지만 오류 메시지가 표시됩니다 !! – sam360

관련 문제