0

ASP.NET MVC 3 응용 프로그램입니다.Java Script를 통해 동적으로 숨겨진 양식 필드에 ValidationSummary 오류로 인해 양식을 게시 할 수 없습니다.

자바 스크립트를 사용하여 표시되고 사라지는 동적 필드가있는 양식을 게시하려고합니다. 나는 이러한 동적 필드 중 일부에서 서버 측 유효성 검사를 수행하기 위해 IValidatableObject를 사용하고 있습니다.

이 필드가 표시되고 양식을 게시하면 유효성 검사가 제대로 작동하고 ValidationSummary에 적절한 오류 메시지가 표시되고 다시 게시됩니다. 지금이 오류 메시지가있는 동안 나는이 필드를 숨 깁니다.

document.getElementById ("schoolNotListed"). style.display = "none";

그리고 다시 양식을 게시하려고하면 매번 ValidationSummary 오류가 발생합니다. 컨트롤이 viewmodel의 Validate() 함수에 도달하지 못하고 컨트롤러에 도달하지 못합니다. 양식을 게시하지 못하게하는 것은 클라이언트 측 유효성 검사입니다.

자바 스크립트를 통해 숨겨진 필드에 대해이 유효성 검사를 건너 뛰거나 비활성화 할 수있는 방법이 있습니까? 또는 Java Script를 통해 ModelState를 지울 수 있습니까?

다르게 접근하는 방법에 대한 제안이 있으십니까?

감사

+0

당신은 자바 스크립트를 통해 modestate을 지울 수 없습니다. 보이지 않을 때 더미 (유효) 데이터로 필드를 미리 채울 수 있습니까? –

답변

0

클라이언트 측 자바 스크립트 유효성 검사 라이브러리는 당신이 그들을 숨길 때

가, 발리를 제거하려고 유효성 검사를 수행하는 규칙 객체를 구축

$('#schoolNotListed').hide().rules('remove', 'required') 
$.validate.unobtrusive.parse() 

이 두 번째 줄은 유효성 검사기를 알려줍니다 rules 오브젝트를 재 빌드하십시오.

이 질문에 유용 할 수 있습니다 : Disable required validation by JavaScript